Browse Source

AnySceneImporter: proxy custom animation track target names.

Ugh, completely forgot to implement it here. Gotta write a checklist.
pull/620/head
Vladimír Vondruš 3 years ago
parent
commit
3a9111df93
  1. 12
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp
  2. 2
      src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h
  3. 33
      src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp
  4. 1
      src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt
  5. 864
      src/MagnumPlugins/AnySceneImporter/Test/animation-visibility.fbx

12
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.cpp

@ -185,6 +185,18 @@ Int AnySceneImporter::doAnimationForName(const Containers::StringView name) { re
Containers::String AnySceneImporter::doAnimationName(const UnsignedInt id) { return _in->animationName(id); } Containers::String AnySceneImporter::doAnimationName(const UnsignedInt id) { return _in->animationName(id); }
Containers::Optional<AnimationData> AnySceneImporter::doAnimation(const UnsignedInt id) { return _in->animation(id); } Containers::Optional<AnimationData> AnySceneImporter::doAnimation(const UnsignedInt id) { return _in->animation(id); }
AnimationTrackTarget AnySceneImporter::doAnimationTrackTargetForName(const Containers::StringView name) {
/* This API can be called even if no file is opened, in that case return
an invalid ID */
return _in ? _in->animationTrackTargetForName(name) : AnimationTrackTarget{};
}
Containers::String AnySceneImporter::doAnimationTrackTargetName(const AnimationTrackTarget name) {
/* This API can be called even if no file is opened, in that case return
an empty name */
return _in ? _in->animationTrackTargetName(name) : Containers::String{};
}
Int AnySceneImporter::doDefaultScene() const { return _in->defaultScene(); } Int AnySceneImporter::doDefaultScene() const { return _in->defaultScene(); }
UnsignedInt AnySceneImporter::doSceneCount() const { return _in->sceneCount(); } UnsignedInt AnySceneImporter::doSceneCount() const { return _in->sceneCount(); }

2
src/MagnumPlugins/AnySceneImporter/AnySceneImporter.h

@ -183,6 +183,8 @@ class MAGNUM_ANYSCENEIMPORTER_EXPORT AnySceneImporter: public AbstractImporter {
MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::String doAnimationName(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::String doAnimationName(UnsignedInt id) override;
MAGNUM_ANYSCENEIMPORTER_LOCAL Int doAnimationForName(Containers::StringView name) override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doAnimationForName(Containers::StringView name) override;
MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional<AnimationData> doAnimation(UnsignedInt id) override; MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::Optional<AnimationData> doAnimation(UnsignedInt id) override;
MAGNUM_ANYSCENEIMPORTER_LOCAL AnimationTrackTarget doAnimationTrackTargetForName(Containers::StringView name) override;
MAGNUM_ANYSCENEIMPORTER_LOCAL Containers::String doAnimationTrackTargetName(AnimationTrackTarget name) override;
MAGNUM_ANYSCENEIMPORTER_LOCAL Int doDefaultScene() const override; MAGNUM_ANYSCENEIMPORTER_LOCAL Int doDefaultScene() const override;

33
src/MagnumPlugins/AnySceneImporter/Test/AnySceneImporterTest.cpp

@ -37,6 +37,7 @@
#include "Magnum/Math/Vector3.h" #include "Magnum/Math/Vector3.h"
#include "Magnum/Trade/AbstractImporter.h" #include "Magnum/Trade/AbstractImporter.h"
#include "Magnum/Trade/AnimationData.h"
#include "Magnum/Trade/MeshData.h" #include "Magnum/Trade/MeshData.h"
#include "Magnum/Trade/SceneData.h" #include "Magnum/Trade/SceneData.h"
@ -67,6 +68,8 @@ struct AnySceneImporterTest: TestSuite::Tester {
void propagateConfigurationUnknownInEmptySubgroup(); void propagateConfigurationUnknownInEmptySubgroup();
void propagateFileCallback(); void propagateFileCallback();
void animationTrackTargetName();
void animationTrackTargetNameNoFileOpened();
void sceneFieldName(); void sceneFieldName();
void sceneFieldNameNoFileOpened(); void sceneFieldNameNoFileOpened();
void meshAttributeName(); void meshAttributeName();
@ -132,6 +135,8 @@ AnySceneImporterTest::AnySceneImporterTest() {
addTests({&AnySceneImporterTest::propagateConfigurationUnknownInEmptySubgroup, addTests({&AnySceneImporterTest::propagateConfigurationUnknownInEmptySubgroup,
&AnySceneImporterTest::propagateFileCallback, &AnySceneImporterTest::propagateFileCallback,
&AnySceneImporterTest::animationTrackTargetName,
&AnySceneImporterTest::animationTrackTargetNameNoFileOpened,
&AnySceneImporterTest::sceneFieldName, &AnySceneImporterTest::sceneFieldName,
&AnySceneImporterTest::sceneFieldNameNoFileOpened, &AnySceneImporterTest::sceneFieldNameNoFileOpened,
&AnySceneImporterTest::meshAttributeName, &AnySceneImporterTest::meshAttributeName,
@ -369,6 +374,34 @@ void AnySceneImporterTest::propagateFileCallback() {
CORRADE_VERIFY(!importer->isOpened()); CORRADE_VERIFY(!importer->isOpened());
} }
void AnySceneImporterTest::animationTrackTargetName() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYSCENEIMPORTER_PLUGIN_FILENAME
CORRADE_VERIFY(manager.load(ANYSCENEIMPORTER_PLUGIN_FILENAME) & PluginManager::LoadState::Loaded);
#endif
if(manager.load("UfbxImporter") < PluginManager::LoadState::Loaded)
CORRADE_SKIP("UfbxImporter plugin can't be loaded.");
/* Make sure UfbxImporter is preferred over Assimp */
manager.setPreferredPlugins("FbxImporter", {"UfbxImporter"});
Containers::Pointer<AbstractImporter> importer = manager.instantiate("AnySceneImporter");
CORRADE_VERIFY(importer->openFile(Utility::Path::join(ANYSCENEIMPORTER_TEST_DIR, "animation-visibility.fbx")));
CORRADE_COMPARE(importer->animationTrackTargetForName("visibility"), animationTrackTargetCustom(0));
CORRADE_COMPARE(importer->animationTrackTargetForName("nonexistent"), AnimationTrackTarget{});
CORRADE_COMPARE(importer->animationTrackTargetName(animationTrackTargetCustom(0)), "visibility");
CORRADE_COMPARE(importer->animationTrackTargetName(animationTrackTargetCustom(3)), "");
}
void AnySceneImporterTest::animationTrackTargetNameNoFileOpened() {
Containers::Pointer<AbstractImporter> importer = _manager.instantiate("AnySceneImporter");
CORRADE_COMPARE(importer->animationTrackTargetForName(""), AnimationTrackTarget{});
CORRADE_COMPARE(importer->animationTrackTargetName(animationTrackTargetCustom(0)), "");
}
void AnySceneImporterTest::sceneFieldName() { void AnySceneImporterTest::sceneFieldName() {
PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR}; PluginManager::Manager<AbstractImporter> manager{MAGNUM_PLUGINS_IMPORTER_INSTALL_DIR};
#ifdef ANYSCENEIMPORTER_PLUGIN_FILENAME #ifdef ANYSCENEIMPORTER_PLUGIN_FILENAME

1
src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt

@ -52,6 +52,7 @@ corrade_add_test(AnySceneImporterTest AnySceneImporterTest.cpp
LIBRARIES MagnumTrade LIBRARIES MagnumTrade
FILES FILES
${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/mesh-primitive-points.obj ${PROJECT_SOURCE_DIR}/src/MagnumPlugins/ObjImporter/Test/mesh-primitive-points.obj
animation-visibility.fbx
empty.gltf empty.gltf
mesh-custom-attribute.gltf mesh-custom-attribute.gltf
scene-custom-field.gltf scene-custom-field.gltf

864
src/MagnumPlugins/AnySceneImporter/Test/animation-visibility.fbx

@ -0,0 +1,864 @@
; FBX 7.7.0 project file
; ----------------------------------------------------
FBXHeaderExtension: {
FBXHeaderVersion: 1004
FBXVersion: 7700
CreationTimeStamp: {
Version: 1000
Year: 2023
Month: 2
Day: 12
Hour: 1
Minute: 27
Second: 21
Millisecond: 573
}
Creator: "FBX SDK/FBX Plugins version 2020.3"
OtherFlags: {
TCDefinition: 127
}
SceneInfo: "SceneInfo::GlobalInfo", "UserData" {
Type: "UserData"
Version: 100
MetaData: {
Version: 100
Title: ""
Subject: ""
Author: ""
Keywords: ""
Revision: ""
Comment: ""
}
Properties70: {
P: "DocumentUrl", "KString", "Url", "", "D:\Dev\wonder\bootstrap\magnum-plugins\src\MagnumPlugins\UfbxImporter\Test\animation-visibility.fbx"
P: "SrcDocumentUrl", "KString", "Url", "", "D:\Dev\wonder\bootstrap\magnum-plugins\src\MagnumPlugins\UfbxImporter\Test\animation-visibility.fbx"
P: "Original", "Compound", "", ""
P: "Original|ApplicationVendor", "KString", "", "", "Autodesk"
P: "Original|ApplicationName", "KString", "", "", "Maya"
P: "Original|ApplicationVersion", "KString", "", "", "2023"
P: "Original|DateTime_GMT", "DateTime", "", "", "11/02/2023 23:27:21.571"
P: "Original|FileName", "KString", "", "", "D:\Dev\wonder\bootstrap\magnum-plugins\src\MagnumPlugins\UfbxImporter\Test\animation-visibility.fbx"
P: "LastSaved", "Compound", "", ""
P: "LastSaved|ApplicationVendor", "KString", "", "", "Autodesk"
P: "LastSaved|ApplicationName", "KString", "", "", "Maya"
P: "LastSaved|ApplicationVersion", "KString", "", "", "2023"
P: "LastSaved|DateTime_GMT", "DateTime", "", "", "11/02/2023 23:27:21.571"
P: "Original|ApplicationActiveProject", "KString", "", "", "D:\Dev\wonder\bootstrap\magnum-plugins\src\MagnumPlugins\UfbxImporter\Test"
}
}
}
GlobalSettings: {
Version: 1000
Properties70: {
P: "UpAxis", "int", "Integer", "",1
P: "UpAxisSign", "int", "Integer", "",1
P: "FrontAxis", "int", "Integer", "",2
P: "FrontAxisSign", "int", "Integer", "",1
P: "CoordAxis", "int", "Integer", "",0
P: "CoordAxisSign", "int", "Integer", "",1
P: "OriginalUpAxis", "int", "Integer", "",1
P: "OriginalUpAxisSign", "int", "Integer", "",1
P: "UnitScaleFactor", "double", "Number", "",1
P: "OriginalUnitScaleFactor", "double", "Number", "",1
P: "AmbientColor", "ColorRGB", "Color", "",0,0,0
P: "DefaultCamera", "KString", "", "", "Producer Perspective"
P: "TimeMode", "enum", "", "",11
P: "TimeProtocol", "enum", "", "",2
P: "SnapOnFrameMode", "enum", "", "",0
P: "TimeSpanStart", "KTime", "Time", "",0
P: "TimeSpanStop", "KTime", "Time", "",192442325000
P: "CustomFrameRate", "double", "Number", "",-1
P: "TimeMarker", "Compound", "", ""
P: "CurrentTimeMarker", "int", "Integer", "",-1
}
}
; Documents Description
;------------------------------------------------------------------
Documents: {
Count: 1
Document: 1296161361616, "", "Scene" {
Properties70: {
P: "SourceObject", "object", "", ""
P: "ActiveAnimStackName", "KString", "", "", "Take 001"
}
RootNode: 0
}
}
; Document References
;------------------------------------------------------------------
References: {
}
; Object definitions
;------------------------------------------------------------------
Definitions: {
Version: 100
Count: 24
ObjectType: "GlobalSettings" {
Count: 1
}
ObjectType: "AnimationStack" {
Count: 1
PropertyTemplate: "FbxAnimStack" {
Properties70: {
P: "Description", "KString", "", "", ""
P: "LocalStart", "KTime", "Time", "",0
P: "LocalStop", "KTime", "Time", "",0
P: "ReferenceStart", "KTime", "Time", "",0
P: "ReferenceStop", "KTime", "Time", "",0
}
}
}
ObjectType: "AnimationLayer" {
Count: 1
PropertyTemplate: "FbxAnimLayer" {
Properties70: {
P: "Weight", "Number", "", "A",100
P: "Mute", "bool", "", "",0
P: "Solo", "bool", "", "",0
P: "Lock", "bool", "", "",0
P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
P: "BlendMode", "enum", "", "",0
P: "RotationAccumulationMode", "enum", "", "",0
P: "ScaleAccumulationMode", "enum", "", "",0
P: "BlendModeBypass", "ULongLong", "", "",0
}
}
}
ObjectType: "Geometry" {
Count: 2
PropertyTemplate: "FbxMesh" {
Properties70: {
P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8
P: "BBoxMin", "Vector3D", "Vector", "",0,0,0
P: "BBoxMax", "Vector3D", "Vector", "",0,0,0
P: "Primary Visibility", "bool", "", "",1
P: "Casts Shadows", "bool", "", "",1
P: "Receive Shadows", "bool", "", "",1
}
}
}
ObjectType: "Material" {
Count: 1
PropertyTemplate: "FbxSurfaceLambert" {
Properties70: {
P: "ShadingModel", "KString", "", "", "Lambert"
P: "MultiLayer", "bool", "", "",0
P: "EmissiveColor", "Color", "", "A",0,0,0
P: "EmissiveFactor", "Number", "", "A",1
P: "AmbientColor", "Color", "", "A",0.2,0.2,0.2
P: "AmbientFactor", "Number", "", "A",1
P: "DiffuseColor", "Color", "", "A",0.8,0.8,0.8
P: "DiffuseFactor", "Number", "", "A",1
P: "Bump", "Vector3D", "Vector", "",0,0,0
P: "NormalMap", "Vector3D", "Vector", "",0,0,0
P: "BumpFactor", "double", "Number", "",1
P: "TransparentColor", "Color", "", "A",0,0,0
P: "TransparencyFactor", "Number", "", "A",0
P: "DisplacementColor", "ColorRGB", "Color", "",0,0,0
P: "DisplacementFactor", "double", "Number", "",1
P: "VectorDisplacementColor", "ColorRGB", "Color", "",0,0,0
P: "VectorDisplacementFactor", "double", "Number", "",1
}
}
}
ObjectType: "Model" {
Count: 2
PropertyTemplate: "FbxNode" {
Properties70: {
P: "QuaternionInterpolate", "enum", "", "",0
P: "RotationOffset", "Vector3D", "Vector", "",0,0,0
P: "RotationPivot", "Vector3D", "Vector", "",0,0,0
P: "ScalingOffset", "Vector3D", "Vector", "",0,0,0
P: "ScalingPivot", "Vector3D", "Vector", "",0,0,0
P: "TranslationActive", "bool", "", "",0
P: "TranslationMin", "Vector3D", "Vector", "",0,0,0
P: "TranslationMax", "Vector3D", "Vector", "",0,0,0
P: "TranslationMinX", "bool", "", "",0
P: "TranslationMinY", "bool", "", "",0
P: "TranslationMinZ", "bool", "", "",0
P: "TranslationMaxX", "bool", "", "",0
P: "TranslationMaxY", "bool", "", "",0
P: "TranslationMaxZ", "bool", "", "",0
P: "RotationOrder", "enum", "", "",0
P: "RotationSpaceForLimitOnly", "bool", "", "",0
P: "RotationStiffnessX", "double", "Number", "",0
P: "RotationStiffnessY", "double", "Number", "",0
P: "RotationStiffnessZ", "double", "Number", "",0
P: "AxisLen", "double", "Number", "",10
P: "PreRotation", "Vector3D", "Vector", "",0,0,0
P: "PostRotation", "Vector3D", "Vector", "",0,0,0
P: "RotationActive", "bool", "", "",0
P: "RotationMin", "Vector3D", "Vector", "",0,0,0
P: "RotationMax", "Vector3D", "Vector", "",0,0,0
P: "RotationMinX", "bool", "", "",0
P: "RotationMinY", "bool", "", "",0
P: "RotationMinZ", "bool", "", "",0
P: "RotationMaxX", "bool", "", "",0
P: "RotationMaxY", "bool", "", "",0
P: "RotationMaxZ", "bool", "", "",0
P: "InheritType", "enum", "", "",0
P: "ScalingActive", "bool", "", "",0
P: "ScalingMin", "Vector3D", "Vector", "",0,0,0
P: "ScalingMax", "Vector3D", "Vector", "",1,1,1
P: "ScalingMinX", "bool", "", "",0
P: "ScalingMinY", "bool", "", "",0
P: "ScalingMinZ", "bool", "", "",0
P: "ScalingMaxX", "bool", "", "",0
P: "ScalingMaxY", "bool", "", "",0
P: "ScalingMaxZ", "bool", "", "",0
P: "GeometricTranslation", "Vector3D", "Vector", "",0,0,0
P: "GeometricRotation", "Vector3D", "Vector", "",0,0,0
P: "GeometricScaling", "Vector3D", "Vector", "",1,1,1
P: "MinDampRangeX", "double", "Number", "",0
P: "MinDampRangeY", "double", "Number", "",0
P: "MinDampRangeZ", "double", "Number", "",0
P: "MaxDampRangeX", "double", "Number", "",0
P: "MaxDampRangeY", "double", "Number", "",0
P: "MaxDampRangeZ", "double", "Number", "",0
P: "MinDampStrengthX", "double", "Number", "",0
P: "MinDampStrengthY", "double", "Number", "",0
P: "MinDampStrengthZ", "double", "Number", "",0
P: "MaxDampStrengthX", "double", "Number", "",0
P: "MaxDampStrengthY", "double", "Number", "",0
P: "MaxDampStrengthZ", "double", "Number", "",0
P: "PreferedAngleX", "double", "Number", "",0
P: "PreferedAngleY", "double", "Number", "",0
P: "PreferedAngleZ", "double", "Number", "",0
P: "LookAtProperty", "object", "", ""
P: "UpVectorProperty", "object", "", ""
P: "Show", "bool", "", "",1
P: "NegativePercentShapeSupport", "bool", "", "",1
P: "DefaultAttributeIndex", "int", "Integer", "",-1
P: "Freeze", "bool", "", "",0
P: "LODBox", "bool", "", "",0
P: "Lcl Translation", "Lcl Translation", "", "A",0,0,0
P: "Lcl Rotation", "Lcl Rotation", "", "A",0,0,0
P: "Lcl Scaling", "Lcl Scaling", "", "A",1,1,1
P: "Visibility", "Visibility", "", "A",1
P: "Visibility Inheritance", "Visibility Inheritance", "", "",1
}
}
}
ObjectType: "AnimationCurveNode" {
Count: 5
PropertyTemplate: "FbxAnimCurveNode" {
Properties70: {
P: "d", "Compound", "", ""
}
}
}
ObjectType: "AnimationCurve" {
Count: 11
}
}
; Object properties
;------------------------------------------------------------------
Objects: {
Geometry: 1296155868688, "Geometry::", "Mesh" {
Vertices: *24 {
a: -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
}
PolygonVertexIndex: *24 {
a: 0,1,3,-3,2,3,5,-5,4,5,7,-7,6,7,1,-1,1,7,5,-4,6,0,2,-5
}
Edges: *12 {
a: 0,2,6,10,3,1,7,5,11,9,15,13
}
GeometryVersion: 124
LayerElementNormal: 0 {
Version: 102
Name: ""
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Normals: *72 {
a: 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,0,-1,0,0,-1,0,0,-1,0,0,-1,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
}
NormalsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementBinormal: 0 {
Version: 102
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Binormals: *72 {
a: 0,1,-0,0,1,-0,0,1,-0,0,1,-0,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,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
}
BinormalsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementTangent: 0 {
Version: 102
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Tangents: *72 {
a: 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,1,0,-0,1,0,-0,1,0,-0,1,0,-0,0,0,-1,0,0,-1,0,-0,-1,0,0,-1,0,-0,1,0,-0,1,0,-0,1,0,-0,1
}
TangentsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementUV: 0 {
Version: 101
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "IndexToDirect"
UV: *28 {
a: 0.375,0,0.625,0,0.375,0.25,0.625,0.25,0.375,0.5,0.625,0.5,0.375,0.75,0.625,0.75,0.375,1,0.625,1,0.875,0,0.875,0.25,0.125,0,0.125,0.25
}
UVIndex: *24 {
a: 0,1,3,2,2,3,5,4,4,5,7,6,6,7,9,8,1,10,11,3,12,0,2,13
}
}
LayerElementMaterial: 0 {
Version: 101
Name: ""
MappingInformationType: "AllSame"
ReferenceInformationType: "IndexToDirect"
Materials: *1 {
a: 0
}
}
Layer: 0 {
Version: 100
LayerElement: {
Type: "LayerElementNormal"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementBinormal"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementTangent"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementMaterial"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementUV"
TypedIndex: 0
}
}
}
Geometry: 1296155854352, "Geometry::", "Mesh" {
Vertices: *24 {
a: -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
}
PolygonVertexIndex: *24 {
a: 0,1,3,-3,2,3,5,-5,4,5,7,-7,6,7,1,-1,1,7,5,-4,6,0,2,-5
}
Edges: *12 {
a: 0,2,6,10,3,1,7,5,11,9,15,13
}
GeometryVersion: 124
LayerElementNormal: 0 {
Version: 102
Name: ""
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Normals: *72 {
a: 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,0,-1,0,0,-1,0,0,-1,0,0,-1,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
}
NormalsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementBinormal: 0 {
Version: 102
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Binormals: *72 {
a: 0,1,-0,0,1,-0,0,1,-0,0,1,-0,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,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
}
BinormalsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementTangent: 0 {
Version: 102
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "Direct"
Tangents: *72 {
a: 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,1,0,-0,1,0,-0,1,0,-0,1,0,-0,0,0,-1,0,0,-1,0,-0,-1,0,0,-1,0,-0,1,0,-0,1,0,-0,1,0,-0,1
}
TangentsW: *24 {
a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
}
}
LayerElementUV: 0 {
Version: 101
Name: "map1"
MappingInformationType: "ByPolygonVertex"
ReferenceInformationType: "IndexToDirect"
UV: *28 {
a: 0.375,0,0.625,0,0.375,0.25,0.625,0.25,0.375,0.5,0.625,0.5,0.375,0.75,0.625,0.75,0.375,1,0.625,1,0.875,0,0.875,0.25,0.125,0,0.125,0.25
}
UVIndex: *24 {
a: 0,1,3,2,2,3,5,4,4,5,7,6,6,7,9,8,1,10,11,3,12,0,2,13
}
}
LayerElementMaterial: 0 {
Version: 101
Name: ""
MappingInformationType: "AllSame"
ReferenceInformationType: "IndexToDirect"
Materials: *1 {
a: 0
}
}
Layer: 0 {
Version: 100
LayerElement: {
Type: "LayerElementNormal"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementBinormal"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementTangent"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementMaterial"
TypedIndex: 0
}
LayerElement: {
Type: "LayerElementUV"
TypedIndex: 0
}
}
}
Model: 1295483016736, "Model::pCube1", "Mesh" {
Version: 232
Properties70: {
P: "RotationActive", "bool", "", "",1
P: "InheritType", "enum", "", "",1
P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
P: "DefaultAttributeIndex", "int", "Integer", "",0
P: "Lcl Translation", "Lcl Translation", "", "A",1,0,0
P: "currentUVSet", "KString", "", "U", "map1"
}
Shading: T
Culling: "CullingOff"
}
Model: 1295483067776, "Model::pCube2", "Mesh" {
Version: 232
Properties70: {
P: "RotationActive", "bool", "", "",1
P: "InheritType", "enum", "", "",1
P: "ScalingMax", "Vector3D", "Vector", "",0,0,0
P: "DefaultAttributeIndex", "int", "Integer", "",0
P: "Lcl Translation", "Lcl Translation", "", "A+",-1,0,0
P: "currentUVSet", "KString", "", "U", "map1"
}
Shading: T
Culling: "CullingOff"
}
Material: 1296219602528, "Material::lambert1", "" {
Version: 102
ShadingModel: "lambert"
MultiLayer: 0
Properties70: {
P: "AmbientColor", "Color", "", "A",0,0,0
P: "DiffuseColor", "Color", "", "A",0.5,0.5,0.5
P: "DiffuseFactor", "Number", "", "A",0.800000011920929
P: "TransparencyFactor", "Number", "", "A",1
P: "Emissive", "Vector3D", "Vector", "",0,0,0
P: "Ambient", "Vector3D", "Vector", "",0,0,0
P: "Diffuse", "Vector3D", "Vector", "",0.400000005960464,0.400000005960464,0.400000005960464
P: "Opacity", "double", "Number", "",1
}
}
AnimationStack: 1296154110608, "AnimStack::Take 001", "" {
Properties70: {
P: "LocalStop", "KTime", "Time", "",38488465000
P: "ReferenceStop", "KTime", "Time", "",38488465000
}
}
AnimationCurve: 1296165965632, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *4 {
a: 0,7697693000,15395386000,23093079000
}
KeyValueFloat: *4 {
a: 0,1,0,1
}
;KeyAttrFlags: Constant|ConstantStandard, Constant|ConstantStandard, Constant|ConstantStandard, Constant|ConstantStandard
KeyAttrFlags: *4 {
a: 2,2,2,2
}
;KeyAttrDataFloat: RightSlope:0, NextLeftSlope:0, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0; RightSlope:0, NextLeftSlope:0, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0; RightSlope:0, NextLeftSlope:6, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0; RightSlope:0, NextLeftSlope:0, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0
KeyAttrDataFloat: *16 {
a: 0,0,218434821,0,0,0,218434821,0,0,1086324736,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *4 {
a: 1,1,1,1
}
}
AnimationCurve: 1296165962272, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *3 {
a: 0,11546539500,23093079000
}
KeyValueFloat: *3 {
a: 1,0,1
}
;KeyAttrFlags: Constant|ConstantStandard, Constant|ConstantStandard, Constant|ConstantStandard
KeyAttrFlags: *3 {
a: 2,2,2
}
;KeyAttrDataFloat: RightSlope:0, NextLeftSlope:0, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0; RightSlope:0, NextLeftSlope:4, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0; RightSlope:0, NextLeftSlope:0, RightWeight:0.333333, NextLeftWeight:0.333333, RightVelocity:0, NextLeftVelocity:0
KeyAttrDataFloat: *12 {
a: 0,0,218434821,0,0,1082130432,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *3 {
a: 1,1,1
}
}
AnimationCurve: 1296165965952, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: -1,-1
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165964352, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 0,1
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165959712, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 0,0
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165958592, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 1,1
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165963072, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 1,1
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165959072, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 1,1
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165965792, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 0,0
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165958752, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 0,0
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurve: 1296165966272, "AnimCurve::", "" {
Default: 0
KeyVer: 4009
KeyTime: *2 {
a: 0,23093079000
}
KeyValueFloat: *2 {
a: 0,0
}
;KeyAttrFlags: Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive, Cubic|TangeantAuto|GenericTimeIndependent|GenericClampProgressive
KeyAttrFlags: *2 {
a: 24840,24840
}
;KeyAttrDataFloat: RightAuto:0, NextLeftAuto:0; RightAuto:0, NextLeftAuto:0
KeyAttrDataFloat: *8 {
a: 0,0,218434821,0,0,0,218434821,0
}
KeyAttrRefCount: *2 {
a: 1,1
}
}
AnimationCurveNode: 1296154112480, "AnimCurveNode::Visibility", "" {
Properties70: {
P: "d|Visibility", "Visibility", "", "A",0
}
}
AnimationCurveNode: 1296154115184, "AnimCurveNode::Visibility", "" {
Properties70: {
P: "d|Visibility", "Visibility", "", "A",1
}
}
AnimationCurveNode: 1296154111648, "AnimCurveNode::T", "" {
Properties70: {
P: "d|X", "Number", "", "A",-1
P: "d|Y", "Number", "", "A",0
P: "d|Z", "Number", "", "A",0
}
}
AnimationCurveNode: 1296154112688, "AnimCurveNode::S", "" {
Properties70: {
P: "d|X", "Number", "", "A",1
P: "d|Y", "Number", "", "A",1
P: "d|Z", "Number", "", "A",1
}
}
AnimationCurveNode: 1296154120592, "AnimCurveNode::R", "" {
Properties70: {
P: "d|X", "Number", "", "A",0
P: "d|Y", "Number", "", "A",0
P: "d|Z", "Number", "", "A",0
}
}
AnimationLayer: 1296220654944, "AnimLayer::BaseLayer", "" {
}
}
; Object connections
;------------------------------------------------------------------
Connections: {
;Model::pCube1, Model::RootNode
C: "OO",1295483016736,0
;Model::pCube2, Model::RootNode
C: "OO",1295483067776,0
;AnimLayer::BaseLayer, AnimStack::Take 001
C: "OO",1296220654944,1296154110608
;AnimCurveNode::Visibility, AnimLayer::BaseLayer
C: "OO",1296154112480,1296220654944
;AnimCurveNode::Visibility, AnimLayer::BaseLayer
C: "OO",1296154115184,1296220654944
;AnimCurveNode::T, AnimLayer::BaseLayer
C: "OO",1296154111648,1296220654944
;AnimCurveNode::S, AnimLayer::BaseLayer
C: "OO",1296154112688,1296220654944
;AnimCurveNode::R, AnimLayer::BaseLayer
C: "OO",1296154120592,1296220654944
;Geometry::, Model::pCube1
C: "OO",1296155868688,1295483016736
;Material::lambert1, Model::pCube1
C: "OO",1296219602528,1295483016736
;AnimCurveNode::Visibility, Model::pCube1
C: "OP",1296154112480,1295483016736, "Visibility"
;Geometry::, Model::pCube2
C: "OO",1296155854352,1295483067776
;Material::lambert1, Model::pCube2
C: "OO",1296219602528,1295483067776
;AnimCurveNode::T, Model::pCube2
C: "OP",1296154111648,1295483067776, "Lcl Translation"
;AnimCurveNode::R, Model::pCube2
C: "OP",1296154120592,1295483067776, "Lcl Rotation"
;AnimCurveNode::S, Model::pCube2
C: "OP",1296154112688,1295483067776, "Lcl Scaling"
;AnimCurveNode::Visibility, Model::pCube2
C: "OP",1296154115184,1295483067776, "Visibility"
;AnimCurve::, AnimCurveNode::Visibility
C: "OP",1296165965632,1296154112480, "d|Visibility"
;AnimCurve::, AnimCurveNode::Visibility
C: "OP",1296165962272,1296154115184, "d|Visibility"
;AnimCurve::, AnimCurveNode::T
C: "OP",1296165965952,1296154111648, "d|X"
;AnimCurve::, AnimCurveNode::T
C: "OP",1296165964352,1296154111648, "d|Y"
;AnimCurve::, AnimCurveNode::T
C: "OP",1296165959712,1296154111648, "d|Z"
;AnimCurve::, AnimCurveNode::S
C: "OP",1296165958592,1296154112688, "d|X"
;AnimCurve::, AnimCurveNode::S
C: "OP",1296165963072,1296154112688, "d|Y"
;AnimCurve::, AnimCurveNode::S
C: "OP",1296165959072,1296154112688, "d|Z"
;AnimCurve::, AnimCurveNode::R
C: "OP",1296165965792,1296154120592, "d|X"
;AnimCurve::, AnimCurveNode::R
C: "OP",1296165958752,1296154120592, "d|Y"
;AnimCurve::, AnimCurveNode::R
C: "OP",1296165966272,1296154120592, "d|Z"
}
;Takes section
;----------------------------------------------------
Takes: {
Current: "Take 001"
Take: "Take 001" {
FileName: "Take_001.tak"
LocalTime: 0,38488465000
ReferenceTime: 0,38488465000
}
}
Loading…
Cancel
Save