ManualParticleLayout* _ManualParticleLayout_New(  MANUALPARTICLELAYOUT_DEFARGS  )
{
	ManualParticleLayout* self;
	
	/* Allocate memory */
	self = (ManualParticleLayout*)_GlobalParticleLayout_New(  GLOBALPARTICLELAYOUT_PASSARGS  );

   self->dictionary = dictionary;

	return self;
}
FileParticleLayout* _FileParticleLayout_New( 
                SizeT                                            _sizeOfSelf,
                Type                                             type,
                Stg_Class_DeleteFunction*                        _delete,
                Stg_Class_PrintFunction*                         _print,
                Stg_Class_CopyFunction*                          _copy,
                Stg_Component_DefaultConstructorFunction*        _defaultConstructor,
                Stg_Component_ConstructFunction*                 _construct,
                Stg_Component_BuildFunction*                     _build,
                Stg_Component_InitialiseFunction*                _initialise,
                Stg_Component_ExecuteFunction*                   _execute,
                Stg_Component_DestroyFunction*                   _destroy,
                ParticleLayout_SetInitialCountsFunction*         _setInitialCounts,
                ParticleLayout_InitialiseParticlesFunction*      _initialiseParticles,
                GlobalParticleLayout_InitialiseParticleFunction* _initialiseParticle,
                Name                                             name,
                Bool                                             initFlag,
                Name                                             filename )
{
	FileParticleLayout* self;
	
	/* Allocate memory */
	assert( _sizeOfSelf >= sizeof( FileParticleLayout ) );
	self = (FileParticleLayout*)_GlobalParticleLayout_New( 
			_sizeOfSelf, 
			type,
			_delete,
			_print,
			_copy, 
			_defaultConstructor,
			_construct,
			_build,
			_initialise,
			_execute,
			_destroy,
			_setInitialCounts,
			_initialiseParticles,
			_initialiseParticle,
			name,
			initFlag,
			GlobalCoordSystem,
			False,
			0,
			0.0 );

	if ( initFlag ) {
		_FileParticleLayout_Init( self, filename );
	}

	return self;
}
UnionParticleLayout* _UnionParticleLayout_New( 
		SizeT                                            _sizeOfSelf,
		Type                                             type,
		Stg_Class_DeleteFunction*                        _delete,
		Stg_Class_PrintFunction*                         _print,
		Stg_Class_CopyFunction*                          _copy, 
		Stg_Component_DefaultConstructorFunction*        _defaultConstructor,
		Stg_Component_ConstructFunction*                 _construct,
		Stg_Component_BuildFunction*                     _build,
		Stg_Component_InitialiseFunction*                _initialise,
		Stg_Component_ExecuteFunction*                   _execute,
		Stg_Component_DestroyFunction*                   _destroy,
		ParticleLayout_SetInitialCountsFunction*         _setInitialCounts,
		ParticleLayout_InitialiseParticlesFunction*      _initialiseParticles,
		GlobalParticleLayout_InitialiseParticleFunction* _initialiseParticle,
		Name                                             name,
		Bool                                             initFlag,
		GlobalParticleLayout**                           particleLayoutList,
		Index                                            particleLayoutCount )
{
	UnionParticleLayout* self;
	
	/* Allocate memory */
	self = (UnionParticleLayout*)_GlobalParticleLayout_New( 
		_sizeOfSelf, 
		type,
		_delete,
		_print,
		_copy, 
		_defaultConstructor,
		_construct,
		_build,
		_initialise,
		_execute,
		_destroy,
		_setInitialCounts,
		_initialiseParticles,
		_initialiseParticle,
		name,
		initFlag,
		GlobalCoordSystem,
		False,
		0,
		0 );

	if ( initFlag ) {
		_UnionParticleLayout_Init( self, particleLayoutList, particleLayoutCount );
	}

	return self;
}