~ubuntu-branches/ubuntu/wily/opencollada/wily-proposed

« back to all changes in this revision

Viewing changes to COLLADAFramework/include/COLLADAFWNewParam.h

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2015-05-14 17:23:27 UTC
  • Revision ID: package-import@ubuntu.com-20150514172327-f862u8envms01fra
Tags: upstream-0.1.0~20140703.ddf8f47+dfsg1
Import upstream version 0.1.0~20140703.ddf8f47+dfsg1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    Copyright (c) 2008-2009 NetAllied Systems GmbH
 
3
 
 
4
    This file is part of COLLADAFramework.
 
5
 
 
6
    Licensed under the MIT Open Source License, 
 
7
    for details please see LICENSE file or the website
 
8
    http://www.opensource.org/licenses/mit-license.php
 
9
*/
 
10
 
 
11
#ifndef __COLLADAFW_NEWPARAM_H__
 
12
#define __COLLADAFW_NEWPARAM_H__
 
13
 
 
14
#include "COLLADAFWPrerequisites.h"
 
15
#include "COLLADAFWSemantic.h"
 
16
#include "COLLADAFWModifier.h"
 
17
#include "COLLADAFWArray.h"
 
18
 
 
19
 
 
20
namespace COLLADAFW
 
21
{
 
22
 
 
23
    /** 
 
24
    Creates a new, named <param> (FX) object in the FX Runtime, and assigns it a type, an 
 
25
    initial value, and additional attributes at declaration time.
 
26
    Parameters are typed data objects that are created in the FX Runtime and are available to 
 
27
    compilers and functions at run time.
 
28
    */
 
29
        class NewParam  
 
30
    {
 
31
    public:
 
32
 
 
33
        /** The different parameter types. */
 
34
        enum ParamType
 
35
        {
 
36
            PARAM_TYPE_FLOAT,
 
37
            PARAM_TYPE_FLOAT2,
 
38
            PARAM_TYPE_FLOAT3,
 
39
            PARAM_TYPE_FLOAT4,
 
40
            PARAM_TYPE_SURFACE,
 
41
            PARAM_TYPE_SURFACE2D
 
42
        };
 
43
 
 
44
        private:
 
45
 
 
46
        /** Identifier for this parameter (that is, the variable name). Required. */
 
47
        String mSid;
 
48
 
 
49
        /** Adds a strongly typed annotation remark to the parent object. */
 
50
        Array<Annotate> mAnnotateArray;
 
51
 
 
52
        /** Provides metainformation that describes the purpose of a parameter declaration. */
 
53
            Semantic mSemantic;
 
54
 
 
55
        /** Provides additional information about the volatility or linkage of a <newparam> declaration. */
 
56
        Modifier mModifier;
 
57
 
 
58
        /** The parameter�s type. Must be exactly one of the following:
 
59
        <float>, <float2>, <float3>, <float4>, <surface>, <sampler2D> */
 
60
        ParamType mParamType;
 
61
 
 
62
        public:
 
63
 
 
64
        /** Constructor. */
 
65
        NewParam ( const ParamType& paramType ) 
 
66
            : mParamType ( paramType )
 
67
        {}
 
68
 
 
69
        /** Destructor. */
 
70
        virtual ~NewParam() {}
 
71
 
 
72
        private:
 
73
 
 
74
        /** Disable default copy ctor. */
 
75
                NewParam( const NewParam& pre );
 
76
 
 
77
        /** Disable default assignment operator. */
 
78
                const NewParam& operator= ( const NewParam& pre );
 
79
 
 
80
        };
 
81
 
 
82
} // namespace COLLADAFW
 
83
 
 
84
#endif // __COLLADAFW_NEWPARAM_H__