[964] | 1 | /*
|
---|
| 2 | Copyright (C) 2006 Feeling Software Inc.
|
---|
| 3 | MIT License: http://www.opensource.org/licenses/mit-license.php
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | /**
|
---|
| 7 | @file FCDEffectParameterSurface.h
|
---|
| 8 | This file contains the FCDEffectParameterSurface class,
|
---|
| 9 | the FCDEffectParameterSurfaceInit interface and its derivate classes.
|
---|
| 10 | */
|
---|
| 11 |
|
---|
| 12 | #ifndef _FCD_EFFECT_PARAMETER_SURFACE_H_
|
---|
| 13 | #define _FCD_EFFECT_PARAMETER_SURFACE_H_
|
---|
| 14 |
|
---|
| 15 | #include "FCDocument/FCDEffectParameter.h"
|
---|
| 16 |
|
---|
| 17 | class FCDEffectParameterSurfaceInit;
|
---|
| 18 |
|
---|
| 19 | /** A dynamically-sized array of COLLADA images */
|
---|
| 20 | typedef vector<FCDImage*> FCDImageList;
|
---|
| 21 |
|
---|
| 22 | /**
|
---|
| 23 | A COLLADA surface parameter.
|
---|
| 24 | This parameters hold the texture loading information. The texture
|
---|
| 25 | placement information should be held by the sampler parameter.
|
---|
| 26 |
|
---|
| 27 | @see FCDEffectParameterSampler
|
---|
| 28 |
|
---|
| 29 | @ingroup FCDEffect
|
---|
| 30 | */
|
---|
| 31 | class FCOLLADA_EXPORT FCDEffectParameterSurface : public FCDEffectParameter
|
---|
| 32 | {
|
---|
| 33 | private:
|
---|
| 34 | DeclareObjectType;
|
---|
| 35 | StringList names;
|
---|
| 36 | FCDImageList images;
|
---|
| 37 | FCDEffectParameterSurfaceInit* initMethod;
|
---|
| 38 | FMVector3 size;
|
---|
| 39 | float viewportRatio;
|
---|
| 40 | uint16 mipLevelCount;
|
---|
| 41 | bool generateMipmaps;
|
---|
| 42 |
|
---|
| 43 | public:
|
---|
| 44 | /** Constructor: do not use directly.
|
---|
| 45 | Instead, use the FCDEffectParameterList::AddParameter function.
|
---|
| 46 | @param document The COLLADA document that owns the effect parameter. */
|
---|
| 47 | FCDEffectParameterSurface(FCDocument* document);
|
---|
| 48 |
|
---|
| 49 | /** Destructor: do not use directly.
|
---|
| 50 | Instead, use the FCDEffectParameterList::ReleaseParameter function.
|
---|
| 51 | When released, the effect parameter list will also release all
|
---|
| 52 | its parameters, if it owns them. */
|
---|
| 53 | virtual ~FCDEffectParameterSurface();
|
---|
| 54 |
|
---|
| 55 | /** Retrieves the type of effect parameter class.
|
---|
| 56 | @return The parameter class type: SURFACE. */
|
---|
| 57 | virtual Type GetType() const { return SURFACE; }
|
---|
| 58 |
|
---|
| 59 | /** Retrieves the initialization method for the surface parameter.
|
---|
| 60 | The initialization method is a powerful method of describing how
|
---|
| 61 | to build complex textures, such as cube maps, from one or
|
---|
| 62 | multiple image files.
|
---|
| 63 | @return The surface initialization method. This pointer will be NULL,
|
---|
| 64 | if no initialization method is provided. */
|
---|
| 65 | FCDEffectParameterSurfaceInit* GetInitMethod() { return initMethod; }
|
---|
| 66 | const FCDEffectParameterSurfaceInit* GetInitMethod() const { return initMethod; } /**< See above. */
|
---|
| 67 |
|
---|
| 68 | /** Sets the initialization method for the surface parameter.
|
---|
| 69 | The initialization method is a powerful method of describing how
|
---|
| 70 | to build complex textures, such as cube maps, from one or
|
---|
| 71 | multiple image files.
|
---|
| 72 | @param method The new initialization method.
|
---|
| 73 | The old initialization method will be released.
|
---|
| 74 | You should create a new initialization method
|
---|
| 75 | for each surface parameter. */
|
---|
| 76 | void SetInitMethod(FCDEffectParameterSurfaceInit* method);
|
---|
| 77 |
|
---|
| 78 | /** Retrieves the number of COLLADA images that make up this surface.
|
---|
| 79 | There should never be more than six images to build a surface.
|
---|
| 80 | In the large majority of cases, expect one image.
|
---|
| 81 | @return The number of images. */
|
---|
| 82 | size_t GetImageCount() const { return images.size(); }
|
---|
| 83 |
|
---|
| 84 | /** Retrieves the list of images that make up this surface.
|
---|
| 85 | There should never be more than six images to build a surface.
|
---|
| 86 | In the large majority of cases, expect one image.
|
---|
| 87 | @return The list of images. */
|
---|
| 88 | FCDImageList& GetImages() { return images; }
|
---|
| 89 | const FCDImageList& GetImages() const { return images; } /**< See above. */
|
---|
| 90 |
|
---|
| 91 | /** Retrieves a specific image.
|
---|
| 92 | @param index The index of the image.
|
---|
| 93 | @return The image. This pointer will be NULL if the index is out-of-bounds. */
|
---|
| 94 | FCDImage* GetImage(size_t index = 0) { return index < images.size() ? images.at(index) : NULL; }
|
---|
| 95 | const FCDImage* GetImage(size_t index = 0) const { return index < images.size() ? images.at(index) : NULL; } /**< See above. */
|
---|
| 96 |
|
---|
| 97 | /** Retrieves the index that matches the given image.
|
---|
| 98 | @param image The image to match.
|
---|
| 99 | @return The index within the list for this image.
|
---|
| 100 | This index may be -1 if no match was found. */
|
---|
| 101 | size_t FindImage(const FCDImage* image) const;
|
---|
| 102 |
|
---|
| 103 | /** Adds an image to the list.
|
---|
| 104 | The initialization method indexes the images from this list.
|
---|
| 105 | This function will verify that this image does not already exist within the list,
|
---|
| 106 | so use the returned index.
|
---|
| 107 | @param image The new image.
|
---|
| 108 | @return The index of the image within the list. */
|
---|
| 109 | size_t AddImage(FCDImage* image);
|
---|
| 110 |
|
---|
| 111 | /** Removes an image from the list.
|
---|
| 112 | The initialization method indexes the images from this list.
|
---|
| 113 | This function will shift all the indexes in the initialization method
|
---|
| 114 | so that they continue matching the correct image.
|
---|
| 115 | @param image The image to remove. Its memory is not released. */
|
---|
| 116 | void RemoveImage(FCDImage* image);
|
---|
| 117 |
|
---|
| 118 | /** Retrieves the wanted dimensions of the surface.
|
---|
| 119 | This parameter is optional and may contain all zeroes to indicate
|
---|
| 120 | that you should read the surface dimensions from the image file(s).
|
---|
| 121 | @return The wanted dimensions. */
|
---|
| 122 | const FMVector3& GetSize() const { return size; }
|
---|
| 123 |
|
---|
| 124 | /** Sets the wanted dimensions of the surface.
|
---|
| 125 | This parameter is optional and can contain all zeroes to indicate
|
---|
| 126 | that you should read the surface dimensions from the image file(s).
|
---|
| 127 | @param dimensions The wanted dimensions. */
|
---|
| 128 | void SetSize(const FMVector3& dimensions) { size = dimensions; }
|
---|
| 129 |
|
---|
| 130 | /** Retrieves the viewport ratio to use when the surface is a render target.
|
---|
| 131 | @return The viewport ratio. */
|
---|
| 132 | float GetViewportRatio() const { return viewportRatio; }
|
---|
| 133 |
|
---|
| 134 | /** Sets the viewport ratio to use when the surface is a render target.
|
---|
| 135 | @param ratio The viewport ratio. */
|
---|
| 136 | void SetViewportRatio(float ratio) { viewportRatio = ratio; }
|
---|
| 137 |
|
---|
| 138 | /** Retrieves the wanted number of mip-levels.
|
---|
| 139 | This parameter is optional and may be zero to indicate that you should
|
---|
| 140 | retrieve the mip-levels from the image file(s) or generate a full
|
---|
| 141 | mip-chain, depending on the mip-map generate flag.
|
---|
| 142 | @see GetMipMapGenerate
|
---|
| 143 | @return The wanted number of mip-levels. */
|
---|
| 144 | uint16 GetMipLevelCount() const { return mipLevelCount; }
|
---|
| 145 |
|
---|
| 146 | /** Sets the wanted number of mip-levels.
|
---|
| 147 | This parameter is optional and can be zero to indicate that you should
|
---|
| 148 | retrieve the mip-levels from the image file(s) or generate a full
|
---|
| 149 | mip-chain, depending on the mip-map generate flag.
|
---|
| 150 | @param levelCount The wanted number of mip-levels. */
|
---|
| 151 | void SetMipLevelCount(uint16 levelCount) { mipLevelCount = levelCount; }
|
---|
| 152 |
|
---|
| 153 | /** Retrieves whether to generate the mip-map levels on load.
|
---|
| 154 | The alternative is to load the mip-map levels from the image files.
|
---|
| 155 | @return Whether to generate the mip-map levels on load. */
|
---|
| 156 | bool IsGenerateMipMaps() const { return generateMipmaps; }
|
---|
| 157 |
|
---|
| 158 | /** Sets whether to generate the mip-map levels of load.
|
---|
| 159 | The alternative is to load the mip-map levels from the image files.
|
---|
| 160 | @param _generateMipmaps Whether to generate the mip-map levels on load. */
|
---|
| 161 | void SetGenerateMipMaps(bool _generateMipmaps) { generateMipmaps = _generateMipmaps; }
|
---|
| 162 |
|
---|
| 163 | /** Retrieves a specific sub-id.
|
---|
| 164 | @todo I'm not too sure of the implications of the names,
|
---|
| 165 | at this level of abstraction: once I'm clear why they exists, add the
|
---|
| 166 | necessary interface to access/pull/push items from/to the list.
|
---|
| 167 | @param index The sub-id index.
|
---|
| 168 | @return The sub-id. This pointer will be NULL if the index is out-of-bounds. */
|
---|
| 169 | const char* GetName(size_t index = 0) const { return (index < names.size()) ? names[index].c_str() : NULL; }
|
---|
| 170 |
|
---|
| 171 | /** Creates a full copy of the effect parameter.
|
---|
| 172 | @todo The cloning does not clone the initialization method correctly.
|
---|
| 173 | @return The cloned effect parameter. You will need to delete this pointer. */
|
---|
| 174 | virtual FCDEffectParameter* Clone();
|
---|
| 175 |
|
---|
| 176 | /** [INTERNAL] Overwrites the target parameter with this parameter.
|
---|
| 177 | This function is used during the flattening of materials.
|
---|
| 178 | @param target The target parameter to overwrite. */
|
---|
| 179 | virtual void Overwrite(FCDEffectParameter* target);
|
---|
| 180 |
|
---|
| 181 | /** [INTERNAL] Reads in the effect parameter from a given COLLADA XML tree node.
|
---|
| 182 | @param parameterNode The COLLADA XML tree node.
|
---|
| 183 | @return The status of the import. If the status is not successful,
|
---|
| 184 | it may be dangerous to extract information from the parameter.*/
|
---|
| 185 | virtual FUStatus LoadFromXML(xmlNode* parameterNode);
|
---|
| 186 |
|
---|
| 187 | /** [INTERNAL] Writes out the effect parameter to the given COLLADA XML tree node.
|
---|
| 188 | @param parentNode The COLLADA XML parent node in which to insert the parameter.
|
---|
| 189 | @return The created element XML tree node. */
|
---|
| 190 | virtual xmlNode* WriteToXML(xmlNode* parentNode) const;
|
---|
| 191 | };
|
---|
| 192 |
|
---|
| 193 |
|
---|
| 194 | /**
|
---|
| 195 | [INTERNAL] The factory for COLLADA effect parameter surface initialization.
|
---|
| 196 |
|
---|
| 197 | @ingroup FCDEffect
|
---|
| 198 | */
|
---|
| 199 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitFactory
|
---|
| 200 | {
|
---|
| 201 | private:
|
---|
| 202 | // Never instantiate: this is a static class
|
---|
| 203 | FCDEffectParameterSurfaceInitFactory() {}
|
---|
| 204 |
|
---|
| 205 | public:
|
---|
| 206 |
|
---|
| 207 | /** The supported initialization types. */
|
---|
| 208 | enum InitType
|
---|
| 209 | {
|
---|
| 210 | FROM, /**< Loads a surface from one simple image file. @see FCDEffectParameterSurfaceInitFrom */
|
---|
| 211 | AS_NULL, /**< No initialization. This surface may be initialized by some future effect parameter override. */
|
---|
| 212 | AS_TARGET, /**< Initializes an engine-specific render target for offscreen rendering. In this case, the dimensions should be provided by the surface effect parameter. */
|
---|
| 213 | CUBE, /**< Loads a cube-map from one complex image file or six simple image files. @see FCDEffectParameterSurfaceInitCube */
|
---|
| 214 | VOLUME, /**< Loads a 3D images for one image file. @see FCDEffectParameterSurfaceInitVolume */
|
---|
| 215 | PLANAR /**< Loads a surface from one simple image file. */
|
---|
| 216 | };
|
---|
| 217 |
|
---|
| 218 | /** [INTERNAL] Creates a new effect surface initialization parameter, given a type.
|
---|
| 219 | @param type The type of initialization parameter to create.*/
|
---|
| 220 | static FCDEffectParameterSurfaceInit* Create(InitType type);
|
---|
| 221 | };
|
---|
| 222 |
|
---|
| 223 |
|
---|
| 224 | /**
|
---|
| 225 | A surface initialization method.
|
---|
| 226 | In COLLADA 1.4.1, this information was added to support complex surface types.
|
---|
| 227 | There are six types of initialization methods, described in the InitType enumerated type.
|
---|
| 228 | Expect the FROM initialization type in the large majority of cases.
|
---|
| 229 |
|
---|
| 230 | @ingroup FCDEffect
|
---|
| 231 | */
|
---|
| 232 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInit
|
---|
| 233 | {
|
---|
| 234 | public:
|
---|
| 235 | /** Constructor: builds a new surface initialization method. */
|
---|
| 236 | FCDEffectParameterSurfaceInit() {}
|
---|
| 237 |
|
---|
| 238 | /** Destructor. */
|
---|
| 239 | virtual ~FCDEffectParameterSurfaceInit() {}
|
---|
| 240 |
|
---|
| 241 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 242 | To change the initialization type of a surface parameter, create a new
|
---|
| 243 | surface initialization structure of the correct type.
|
---|
| 244 | @return The initialization type. */
|
---|
| 245 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const = 0;
|
---|
| 246 |
|
---|
| 247 | /** Copies all member variables into clone.
|
---|
| 248 | @param clone a valid pointer to a FCDEffectParameterSurfaceInit object*/
|
---|
| 249 | void Clone(FCDEffectParameterSurfaceInit* clone);
|
---|
| 250 |
|
---|
| 251 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 252 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 253 | virtual FCDEffectParameterSurfaceInit* Clone() = 0;
|
---|
| 254 | };
|
---|
| 255 |
|
---|
| 256 | /**
|
---|
| 257 | A cube-map surface initialization method.
|
---|
| 258 | */
|
---|
| 259 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitCube : public FCDEffectParameterSurfaceInit
|
---|
| 260 | {
|
---|
| 261 | public:
|
---|
| 262 | /** The types of cube-map initializations. */
|
---|
| 263 | enum CubeType
|
---|
| 264 | {
|
---|
| 265 | ALL, /** Load all the mip-levels of all the cube-map faces from one image file. */
|
---|
| 266 | PRIMARY, /** Load the first mip-level of all the cube-map faces from one image file. */
|
---|
| 267 | FACE /** Load all the cube-map faces from separate image files. */
|
---|
| 268 | };
|
---|
| 269 |
|
---|
| 270 | public:
|
---|
| 271 | /** Constructor: builds a new cube-map initialization method. */
|
---|
| 272 | FCDEffectParameterSurfaceInitCube();
|
---|
| 273 |
|
---|
| 274 | /** Destructor. */
|
---|
| 275 | virtual ~FCDEffectParameterSurfaceInitCube() {}
|
---|
| 276 |
|
---|
| 277 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 278 | To change the initialization type of a surface parameter, create a new
|
---|
| 279 | surface initialization structure of the correct type.
|
---|
| 280 | @return The initialization type. */
|
---|
| 281 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::CUBE;}
|
---|
| 282 |
|
---|
| 283 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 284 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 285 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 286 |
|
---|
| 287 | /** The type of cube-map initialization. */
|
---|
| 288 | CubeType cubeType;
|
---|
| 289 |
|
---|
| 290 | /** The list of image indices.
|
---|
| 291 | The images are contained within the surface effect parameter.
|
---|
| 292 | This is used only for the FACE cube-map initialization type and indicates
|
---|
| 293 | how to match the faces of faces of the cube-map with the images in the surface effect parameter. */
|
---|
| 294 | UInt16List order;
|
---|
| 295 | };
|
---|
| 296 |
|
---|
| 297 | /**
|
---|
| 298 | A volumetric surface initialization method.
|
---|
| 299 | */
|
---|
| 300 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitVolume : public FCDEffectParameterSurfaceInit
|
---|
| 301 | {
|
---|
| 302 | public:
|
---|
| 303 | /** The types of volumetric surfaces initialization. */
|
---|
| 304 | enum VolumeType
|
---|
| 305 | {
|
---|
| 306 | ALL, /** Load all the mip-levels from the image file. */
|
---|
| 307 | PRIMARY /** Load the first mip-level from the image file. */
|
---|
| 308 | };
|
---|
| 309 |
|
---|
| 310 | public:
|
---|
| 311 | /** Constructor: builds a new volumetric surface initialization method. */
|
---|
| 312 | FCDEffectParameterSurfaceInitVolume();
|
---|
| 313 |
|
---|
| 314 | /** Destructor. */
|
---|
| 315 | virtual ~FCDEffectParameterSurfaceInitVolume() {}
|
---|
| 316 |
|
---|
| 317 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 318 | To change the initialization type of a surface parameter, create a new
|
---|
| 319 | surface initialization structure of the correct type.
|
---|
| 320 | @return The initialization type. */
|
---|
| 321 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::VOLUME;}
|
---|
| 322 |
|
---|
| 323 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 324 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 325 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 326 |
|
---|
| 327 | /** The type of volumetric initialization. */
|
---|
| 328 | VolumeType volumeType;
|
---|
| 329 | };
|
---|
| 330 |
|
---|
| 331 | /**
|
---|
| 332 | A simple file surface initialization method.
|
---|
| 333 | This is the method used for backward-compatibility.
|
---|
| 334 | */
|
---|
| 335 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitFrom : public FCDEffectParameterSurfaceInit
|
---|
| 336 | {
|
---|
| 337 | public:
|
---|
| 338 | /** Constructor: builds a new file surface initialization method. */
|
---|
| 339 | FCDEffectParameterSurfaceInitFrom() {}
|
---|
| 340 |
|
---|
| 341 | /** Destructor. */
|
---|
| 342 | virtual ~FCDEffectParameterSurfaceInitFrom() {}
|
---|
| 343 |
|
---|
| 344 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 345 | To change the initialization type of a surface parameter, create a new
|
---|
| 346 | surface initialization structure of the correct type.
|
---|
| 347 | @return The initialization type. */
|
---|
| 348 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::FROM;}
|
---|
| 349 |
|
---|
| 350 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 351 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 352 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 353 |
|
---|
| 354 | /** The list of mip levels. */
|
---|
| 355 | StringList mip;
|
---|
| 356 |
|
---|
| 357 | /** The list of matching slices. */
|
---|
| 358 | StringList slice;
|
---|
| 359 |
|
---|
| 360 | /** The list of matching faces. */
|
---|
| 361 | StringList face;
|
---|
| 362 | };
|
---|
| 363 |
|
---|
| 364 | /**
|
---|
| 365 | This method allows to initialize the surface at a later point.
|
---|
| 366 | */
|
---|
| 367 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitAsNull : public FCDEffectParameterSurfaceInit
|
---|
| 368 | {
|
---|
| 369 | public:
|
---|
| 370 | /** Constructor: builds a new file surface initialization method. */
|
---|
| 371 | FCDEffectParameterSurfaceInitAsNull() {}
|
---|
| 372 |
|
---|
| 373 | /** Destructor. */
|
---|
| 374 | virtual ~FCDEffectParameterSurfaceInitAsNull() {}
|
---|
| 375 |
|
---|
| 376 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 377 | To change the initialization type of a surface parameter, create a new
|
---|
| 378 | surface initialization structure of the correct type.
|
---|
| 379 | @return The initialization type. */
|
---|
| 380 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::AS_NULL;}
|
---|
| 381 |
|
---|
| 382 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 383 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 384 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 385 | };
|
---|
| 386 |
|
---|
| 387 | /**
|
---|
| 388 | This method allows to initialize the surface as a rendering target.
|
---|
| 389 | */
|
---|
| 390 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitAsTarget : public FCDEffectParameterSurfaceInit
|
---|
| 391 | {
|
---|
| 392 | public:
|
---|
| 393 | /** Constructor: builds a new file surface initialization method. */
|
---|
| 394 | FCDEffectParameterSurfaceInitAsTarget() {};
|
---|
| 395 |
|
---|
| 396 | /** Destructor. */
|
---|
| 397 | virtual ~FCDEffectParameterSurfaceInitAsTarget() {}
|
---|
| 398 |
|
---|
| 399 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 400 | To change the initialization type of a surface parameter, create a new
|
---|
| 401 | surface initialization structure of the correct type.
|
---|
| 402 | @return The initialization type. */
|
---|
| 403 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::AS_TARGET;}
|
---|
| 404 |
|
---|
| 405 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 406 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 407 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 408 | };
|
---|
| 409 |
|
---|
| 410 | /**
|
---|
| 411 | This method allows to initialize the surface as planar.
|
---|
| 412 | */
|
---|
| 413 | class FCOLLADA_EXPORT FCDEffectParameterSurfaceInitPlanar : public FCDEffectParameterSurfaceInit
|
---|
| 414 | {
|
---|
| 415 | public:
|
---|
| 416 | /** Constructor: builds a new file surface initialization method. */
|
---|
| 417 | FCDEffectParameterSurfaceInitPlanar() {};
|
---|
| 418 |
|
---|
| 419 | /** Destructor. */
|
---|
| 420 | virtual ~FCDEffectParameterSurfaceInitPlanar() {}
|
---|
| 421 |
|
---|
| 422 | /** Retrieves the initialization type. You cannot modify this value.
|
---|
| 423 | To change the initialization type of a surface parameter, create a new
|
---|
| 424 | surface initialization structure of the correct type.
|
---|
| 425 | @return The initialization type. */
|
---|
| 426 | virtual FCDEffectParameterSurfaceInitFactory::InitType GetInitType() const {return FCDEffectParameterSurfaceInitFactory::PLANAR;}
|
---|
| 427 |
|
---|
| 428 | /** Creates a full copy of the surface initialization parameter.
|
---|
| 429 | @return The surface initialization parameter. You will need to delete this pointer. */
|
---|
| 430 | virtual FCDEffectParameterSurfaceInit* Clone();
|
---|
| 431 | };
|
---|
| 432 |
|
---|
| 433 |
|
---|
| 434 |
|
---|
| 435 | #endif // _FCD_EFFECT_PARAMETER_SURFACE_H_
|
---|