/// AssetImportConfig is a SimObject derived object intended to act as a container for all the necessary configuration data when running the Asset Importer.
/// It dictates if and how any given asset type will be processed when running an import action. This is because the Asset Importer utilizes a lot of informed logic
/// to try and automate as much of the import process as possible. In theory, you would run the import on a given file, and based on your config the importer will do
/// everything from importing the designated file, as well as finding and importing any associated files such as images or materials, and prepping the objects at time
/// of import to avoid as much manual post-processing as possible.
/// A list of what nodes should be guaranteed to be imported if found in the model file. Separated by either , or ;
/// </summary>
StringImportedNodes;
/// <summary>
/// A list of what nodes should be guaranteed to not be imported if found in the model file. Separated by either , or ;
/// </summary>
StringIgnoreNodes;
/// <summary>
/// A list of what mesh objects should be guaranteed to be imported if found in the model file. Separated by either , or ;
/// </summary>
StringImportMeshes;
/// <summary>
/// A list of what mesh objects should be guaranteed to not be imported if found in the model file. Separated by either , or ;
/// </summary>
StringIgnoreMeshes;
//Assimp/Collada params
/// <summary>
/// Flag to indicate the shape loader should convert to a left-handed coordinate system
/// </summary>
boolconvertLeftHanded;
/// <summary>
/// Should the shape loader calculate tangent space values
/// </summary>
boolcalcTangentSpace;
/// <summary>
/// Should the shape loader automatically prune redundant/duplicate materials
/// </summary>
boolremoveRedundantMats;
/// <summary>
/// Should the shape loader auto-generate UV Coordinates for the mesh.
/// </summary>
boolgenUVCoords;
/// <summary>
/// Should the UV coordinates be transformed.
/// </summary>
boolTransformUVs;
/// <summary>
/// Should the UV coordinates be flipped
/// </summary>
boolflipUVCoords;
/// <summary>
/// Should the shape loader automatically look for instanced submeshes in the model file
/// </summary>
boolfindInstances;
/// <summary>
/// Should the shape loader limit the bone weights
/// </summary>
boollimitBoneWeights;
/// <summary>
/// Should the shape loader automatically merge identical/duplicate verts
/// </summary>
boolJoinIdenticalVerts;
/// <summary>
/// Should the shape loader reverse the winding order of the mesh's face indicies
/// </summary>
boolreverseWindingOrder;
/// <summary>
/// Should the normals on the model be inverted
/// </summary>
boolinvertNormals;
//
//
//Materials
/// <summary>
/// Does this config allow for importing of materials
/// </summary>
boolImportMaterials;
/// <summary>
/// When importing a material, should it automatically attempt to merge Roughness, AO and Metalness maps into a single, composited PBR Configuration map
/// </summary>
boolCreatePBRConfig;
/// <summary>
/// When generating a material off of an importing image, should the importer force appending a diffusemap suffix onto the end to avoid potential naming confusion.
/// e.g. MyCoolStuff.png is imported, generating MyCoolStuff material asset and MyCoolStuff_Diffuse image asset
/// </summary>
boolUseDiffuseSuffixOnOriginImage;
/// <summary>
/// Should the importer try and use existing material assets in the game directory if at all possible. (Not currently utilized)
/// </summary>
boolUseExistingMaterials;
/// <summary>
/// A list of material names that should not be imported. Separated by either , or ;
/// </summary>
StringIgnoreMaterials;
/// <summary>
/// When processing a material asset, should the importer attempt to populate the various material maps on it by looking up common naming conventions for potentially relevent image files
/// e.g. If MyCoolStuff_Diffuse.png is imported, generating MyCoolStuff material, it would also find MyCoolStuff_Normal and MyCoolStuff_PBR images and map them to the normal and PBRConfig maps respectively automatically
/// </summary>
boolPopulateMaterialMaps;
//
//Animations
/// <summary>
/// Does this config allow for importing Shape Animations
/// </summary>
boolImportAnimations;
/// <summary>
/// When importing a shape file, should the animations within be separated out into unique files
/// </summary>
boolSeparateAnimations;
/// <summary>
/// If separating animations out from a source file, what prefix should be added to the names for grouping association
/// </summary>
StringSeparateAnimationPrefix;
/// <summary>
/// Defines the animation timing for the given animation sequence. Options are FrameTime, Seconds, Milliseconds
/// </summary>
StringanimTiming;
/// <summary>
/// The FPS of the animation sequence
/// </summary>
F32animFPS;
//
//Collision
/// <summary>
/// Does this configuration generate collision geometry when importing. (Not currently enabled)
/// </summary>
boolGenerateCollisions;
/// <summary>
/// What sort of collision geometry is generated. (Not currently enabled)
/// </summary>
StringGenCollisionType;
/// <summary>
/// What prefix is added to the collision geometry generated. (Not currently enabled)
/// </summary>
StringCollisionMeshPrefix;
/// <summary>
/// Does this configuration generate Line of Sight collision geometry. (Not currently enabled)
/// </summary>
boolGenerateLOSCollisions;
/// <summary>
/// What sort of Line of Sight collision geometry is generated. (Not currently enabled)
/// </summary>
StringGenLOSCollisionType;
/// <summary>
/// What prefix is added to the Line of Sight collision geometry generated. (Not currently enabled)
/// </summary>
StringLOSCollisionMeshPrefix;
//
//Images
/// <summary>
/// Does this configuration support importing images.
/// </summary>
boolimportImages;
/// <summary>
/// What is the default ImageType images are imported as. Options are: N/A, Diffuse, Normal, Metalness, Roughness, AO, PBRConfig, GUI, Cubemap
/// </summary>
StringImageType;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a diffuse map.
/// e.g. _Albedo or _Color
/// </summary>
StringDiffuseTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a normal map.
/// e.g. _Normal or _Norm
/// </summary>
StringNormalTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a metalness map.
/// e.g. _Metalness or _Metal
/// </summary>
StringMetalnessTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a roughness map.
/// e.g. _roughness or _rough
/// </summary>
StringRoughnessTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a smoothness map.
/// e.g. _smoothness or _smooth
/// </summary>
StringSmoothnessTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a ambient occlusion map.
/// e.g. _ambient or _ao
/// </summary>
StringAOTypeSuffixes;
/// <summary>
/// What type of suffixes are scanned to detect if an importing image is a PBRConfig map.
/// e.g. _Composite or _PBR
/// </summary>
StringPBRTypeSuffixes;
/// <summary>
/// Indicates what filter mode images imported with this configuration utilizes. Options are Linear, Bilinear, Trilinear
/// </summary>
StringTextureFilteringMode;
/// <summary>
/// Indicates if images imported with this configuration utilize mipmaps
/// </summary>
boolUseMips;
/// <summary>
/// Indicates if images imported with this configuration are in an HDR format
/// </summary>
boolIsHDR;
/// <summary>
/// Indicates what amount of scaling images imported with this configuration use
/// </summary>
F32Scaling;
/// <summary>
/// Indicates if images imported with this configuration are compressed
/// AssetImportConfig is a SimObject derived object that represents and holds information for an importing asset. They are generated and processed by the AssetImporter
/// </summary>
classAssetImportObject:publicSimObject
{
typedefSimObjectParent;
public:
/// <summary>
/// What type is the importing asset
/// </summary>
StringassetType;
/// <summary>
/// What is the source file path of the importing asset
/// Finds an asset item in the session if it exists, by name
/// <para>@param assetName, Asset name to find</para>
/// <para>@param assetItem, if null, will loop over and recurse the main import asset items, if a specific AssetImportObject is passed in, it will recurse it's children</para>
/// <para>@return AssetImportObject that was found</para>
/// Checks asset items for any collisions in the current import session
/// <para>@param assetItemToCheckFor, The asset to check for collisions with</para>
/// <para>@param assetItem, if null, will loop over and recurse the main import asset items, if a specific AssetImportObject is passed in, it will recurse it's children</para>
/// <para>@return If a collision was detected</para>
/// <para>@param assetItem, if null, will loop over and recurse the main import asset items, if a specific AssetImportObject is passed in, it will recurse it's children</para>