void Atlas::packUV(const AtlasRegion& _region, uint8_t* _vertexBuffer, uint32_t _offset, uint32_t _stride) const { int16_t x0 = (int16_t)( ( (float)_region.x * m_texelSize + m_texelOffset[0]) - float(INT16_MAX) ); int16_t y0 = (int16_t)( ( (float)_region.y * m_texelSize + m_texelOffset[1]) - float(INT16_MAX) ); int16_t x1 = (int16_t)( ( ( (float)_region.x + _region.width) * m_texelSize + m_texelOffset[0]) - float(INT16_MAX) ); int16_t y1 = (int16_t)( ( ( (float)_region.y + _region.height) * m_texelSize + m_texelOffset[1]) - float(INT16_MAX) ); int16_t ww = (int16_t)( (float(INT16_MAX) / 4.0f) * (float)_region.getComponentIndex() ); _vertexBuffer += _offset; switch (_region.getFaceIndex() ) { case 0: // +X x0 = -x0; x1 = -x1; y0 = -y0; y1 = -y1; writeUV(_vertexBuffer, INT16_MAX, y0, x0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MAX, y1, x0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MAX, y1, x1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MAX, y0, x1, ww); _vertexBuffer += _stride; break; case 1: // -X y0 = -y0; y1 = -y1; writeUV(_vertexBuffer, INT16_MIN, y0, x0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MIN, y1, x0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MIN, y1, x1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, INT16_MIN, y0, x1, ww); _vertexBuffer += _stride; break; case 2: // +Y writeUV(_vertexBuffer, x0, INT16_MAX, y0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x0, INT16_MAX, y1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, INT16_MAX, y1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, INT16_MAX, y0, ww); _vertexBuffer += _stride; break; case 3: // -Y y0 = -y0; y1 = -y1; writeUV(_vertexBuffer, x0, INT16_MIN, y0, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x0, INT16_MIN, y1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, INT16_MIN, y1, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, INT16_MIN, y0, ww); _vertexBuffer += _stride; break; case 4: // +Z y0 = -y0; y1 = -y1; writeUV(_vertexBuffer, x0, y0, INT16_MAX, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x0, y1, INT16_MAX, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, y1, INT16_MAX, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, y0, INT16_MAX, ww); _vertexBuffer += _stride; break; case 5: // -Z x0 = -x0; x1 = -x1; y0 = -y0; y1 = -y1; writeUV(_vertexBuffer, x0, y0, INT16_MIN, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x0, y1, INT16_MIN, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, y1, INT16_MIN, ww); _vertexBuffer += _stride; writeUV(_vertexBuffer, x1, y0, INT16_MIN, ww); _vertexBuffer += _stride; break; } }
void serializeFBX(FILE_INTERFACE *fph,MeshSystem *ms) { fi_fprintf(fph,"; FBX 6.1.0 project file\r\n"); fi_fprintf(fph,"; Copyright (C) 1997-2008 Autodesk Inc. and/or its licensors.\r\n"); fi_fprintf(fph,"; All rights reserved.\r\n"); fi_fprintf(fph,"; ----------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"FBXHeaderExtension: {\r\n"); fi_fprintf(fph," FBXHeaderVersion: 1003\r\n"); fi_fprintf(fph," FBXVersion: 6100\r\n"); fi_fprintf(fph," CreationTimeStamp: {\r\n"); fi_fprintf(fph," Version: 1000\r\n"); fi_fprintf(fph," Year: 2009\r\n"); fi_fprintf(fph," Month: 12\r\n"); fi_fprintf(fph," Day: 3\r\n"); fi_fprintf(fph," Hour: 18\r\n"); fi_fprintf(fph," Minute: 6\r\n"); fi_fprintf(fph," Second: 18\r\n"); fi_fprintf(fph," Millisecond: 532\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Creator: \"FBX SDK/FBX Plugins version 2010.2\"\r\n"); fi_fprintf(fph," OtherFlags: {\r\n"); fi_fprintf(fph," FlagPLE: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,"CreationTime: \"2009-12-03 18:06:18:532\"\r\n"); fi_fprintf(fph,"Creator: \"FBX SDK/FBX Plugins build 20090731\"\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"; Document Description\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Document: {\r\n"); fi_fprintf(fph," Name: \"\"\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"; Document References\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"References: {\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"; Object definitions\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Definitions: {\r\n"); fi_fprintf(fph," Version: 100\r\n"); fi_fprintf(fph," Count: 5\r\n"); fi_fprintf(fph," ObjectType: \"Model\" {\r\n"); fi_fprintf(fph," Count: 2\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," ObjectType: \"Material\" {\r\n"); fi_fprintf(fph," Count: 1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," ObjectType: \"SceneInfo\" {\r\n"); fi_fprintf(fph," Count: 1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," ObjectType: \"GlobalSettings\" {\r\n"); fi_fprintf(fph," Count: 1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"; Object properties\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Objects: {\r\n"); fi_fprintf(fph," Model: \"Model::aconcave_root\", \"Null\" {\r\n"); fi_fprintf(fph," Version: 232\r\n"); fi_fprintf(fph," Properties60: {\r\n"); fi_fprintf(fph," Property: \"QuaternionInterpolate\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationOffset\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationPivot\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"ScalingOffset\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"ScalingPivot\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMin\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationMax\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationOrder\", \"enum\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationSpaceForLimitOnly\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"AxisLen\", \"double\", \"\",10\r\n"); fi_fprintf(fph," Property: \"PreRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"PostRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMin\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationMax\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"InheritType\", \"enum\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMin\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"ScalingMax\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"ScalingMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"GeometricTranslation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"GeometricRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"GeometricScaling\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"MinDampRangeX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampRangeY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampRangeZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"LookAtProperty\", \"object\", \"\"\r\n"); fi_fprintf(fph," Property: \"UpVectorProperty\", \"object\", \"\"\r\n"); fi_fprintf(fph," Property: \"Show\", \"bool\", \"\",1\r\n"); fi_fprintf(fph," Property: \"NegativePercentShapeSupport\", \"bool\", \"\",1\r\n"); fi_fprintf(fph," Property: \"DefaultAttributeIndex\", \"int\", \"\",-1\r\n"); fi_fprintf(fph," Property: \"Freeze\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"LODBox\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"Lcl Translation\", \"Lcl Translation\", \"A+\",0,0,0\r\n"); fi_fprintf(fph," Property: \"Lcl Rotation\", \"Lcl Rotation\", \"A+\",0,0,0\r\n"); fi_fprintf(fph," Property: \"Lcl Scaling\", \"Lcl Scaling\", \"A+\",1,1,1\r\n"); fi_fprintf(fph," Property: \"Visibility\", \"Visibility\", \"A+\",1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," MultiLayer: 0\r\n"); fi_fprintf(fph," MultiTake: 1\r\n"); fi_fprintf(fph," Shading: Y\r\n"); fi_fprintf(fph," Culling: \"CullingOff\"\r\n"); fi_fprintf(fph," TypeFlags: \"Null\"\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Model: \"Model::Box01\", \"Mesh\" {\r\n"); fi_fprintf(fph," Version: 232\r\n"); fi_fprintf(fph," Properties60: {\r\n"); fi_fprintf(fph," Property: \"QuaternionInterpolate\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationOffset\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationPivot\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"ScalingOffset\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"ScalingPivot\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMin\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationMax\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TranslationMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"TranslationMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationOrder\", \"enum\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationSpaceForLimitOnly\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationStiffnessZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"AxisLen\", \"double\", \"\",10\r\n"); fi_fprintf(fph," Property: \"PreRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"PostRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMin\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationMax\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"RotationMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"RotationMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"InheritType\", \"enum\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingActive\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMin\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"ScalingMax\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"ScalingMinX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMinY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMinZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxX\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxY\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"ScalingMaxZ\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"GeometricTranslation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"GeometricRotation\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"GeometricScaling\", \"Vector3D\", \"\",1,1,1\r\n"); fi_fprintf(fph," Property: \"MinDampRangeX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampRangeY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampRangeZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampRangeZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MinDampStrengthZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"MaxDampStrengthZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleX\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleY\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"PreferedAngleZ\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"LookAtProperty\", \"object\", \"\"\r\n"); fi_fprintf(fph," Property: \"UpVectorProperty\", \"object\", \"\"\r\n"); fi_fprintf(fph," Property: \"Show\", \"bool\", \"\",1\r\n"); fi_fprintf(fph," Property: \"NegativePercentShapeSupport\", \"bool\", \"\",1\r\n"); fi_fprintf(fph," Property: \"DefaultAttributeIndex\", \"int\", \"\",0\r\n"); fi_fprintf(fph," Property: \"Freeze\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"LODBox\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"Lcl Translation\", \"Lcl Translation\", \"A+\",0,0,0\r\n"); fi_fprintf(fph," Property: \"Lcl Rotation\", \"Lcl Rotation\", \"A+\",0,0,0\r\n"); fi_fprintf(fph," Property: \"Lcl Scaling\", \"Lcl Scaling\", \"A+\",1,1,1\r\n"); fi_fprintf(fph," Property: \"Visibility\", \"Visibility\", \"A+\",1\r\n"); fi_fprintf(fph," Property: \"Color\", \"ColorRGB\", \"N\",0.8,0.8,0.8\r\n"); fi_fprintf(fph," Property: \"BBoxMin\", \"Vector3D\", \"N\",0,0,0\r\n"); fi_fprintf(fph," Property: \"BBoxMax\", \"Vector3D\", \"N\",0,0,0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," MultiLayer: 0\r\n"); fi_fprintf(fph," MultiTake: 1\r\n"); fi_fprintf(fph," Shading: Y\r\n"); fi_fprintf(fph," Culling: \"CullingOff\"\r\n"); if ( ms->mMeshCount ) { Mesh *mesh = ms->mMeshes[0]; writeVertices(fph,mesh); writePolygonVertexIndex(fph,mesh); fi_fprintf(fph," GeometryVersion: 124\r\n"); writeUV(fph,mesh); } fi_fprintf(fph," LayerElementMaterial: 0 {\r\n"); fi_fprintf(fph," Version: 101\r\n"); fi_fprintf(fph," Name: \"\"\r\n"); fi_fprintf(fph," MappingInformationType: \"AllSame\"\r\n"); fi_fprintf(fph," ReferenceInformationType: \"IndexToDirect\"\r\n"); fi_fprintf(fph," Materials: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," LayerElementTexture: 0 {\r\n"); fi_fprintf(fph," Version: 101\r\n"); fi_fprintf(fph," Name: \"\"\r\n"); fi_fprintf(fph," MappingInformationType: \"NoMappingInformation\"\r\n"); fi_fprintf(fph," ReferenceInformationType: \"IndexToDirect\"\r\n"); fi_fprintf(fph," BlendMode: \"Translucent\"\r\n"); fi_fprintf(fph," TextureAlpha: 1\r\n"); fi_fprintf(fph," TextureId:\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Layer: 0 {\r\n"); fi_fprintf(fph," Version: 100\r\n"); fi_fprintf(fph," LayerElement: {\r\n"); fi_fprintf(fph," Type: \"LayerElementMaterial\"\r\n"); fi_fprintf(fph," TypedIndex: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," LayerElement: {\r\n"); fi_fprintf(fph," Type: \"LayerElementTexture\"\r\n"); fi_fprintf(fph," TypedIndex: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," LayerElement: {\r\n"); fi_fprintf(fph," Type: \"LayerElementUV\"\r\n"); fi_fprintf(fph," TypedIndex: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," NodeAttributeName: \"Geometry::Box01_ncl1_1\"\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," SceneInfo: \"SceneInfo::GlobalInfo\", \"UserData\" {\r\n"); fi_fprintf(fph," Type: \"UserData\"\r\n"); fi_fprintf(fph," Version: 100\r\n"); fi_fprintf(fph," MetaData: {\r\n"); fi_fprintf(fph," Version: 100\r\n"); fi_fprintf(fph," Title: \"\"\r\n"); fi_fprintf(fph," Subject: \"\"\r\n"); fi_fprintf(fph," Author: \"\"\r\n"); fi_fprintf(fph," Keywords: \"\"\r\n"); fi_fprintf(fph," Revision: \"\"\r\n"); fi_fprintf(fph," Comment: \"\"\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Properties60: {\r\n"); fi_fprintf(fph," Property: \"DocumentUrl\", \"KString\", \"\", \"aconcave.fbx\"\r\n"); fi_fprintf(fph," Property: \"SrcDocumentUrl\", \"KString\", \"\", \"aconcave.fbx\"\r\n"); fi_fprintf(fph," Property: \"Original\", \"Compound\", \"\"\r\n"); fi_fprintf(fph," Property: \"Original|ApplicationVendor\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"Original|ApplicationName\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"Original|ApplicationVersion\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"Original|DateTime_GMT\", \"DateTime\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"Original|FileName\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"LastSaved\", \"Compound\", \"\"\r\n"); fi_fprintf(fph," Property: \"LastSaved|ApplicationVendor\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"LastSaved|ApplicationName\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"LastSaved|ApplicationVersion\", \"KString\", \"\", \"\"\r\n"); fi_fprintf(fph," Property: \"LastSaved|DateTime_GMT\", \"DateTime\", \"\", \"\"\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Material: \"Material::Box01Mat\", \"\" {\r\n"); fi_fprintf(fph," Version: 102\r\n"); fi_fprintf(fph," ShadingModel: \"phong\"\r\n"); fi_fprintf(fph," MultiLayer: 0\r\n"); fi_fprintf(fph," Properties60: {\r\n"); fi_fprintf(fph," Property: \"ShadingModel\", \"KString\", \"\", \"Phong\"\r\n"); fi_fprintf(fph," Property: \"MultiLayer\", \"bool\", \"\",0\r\n"); fi_fprintf(fph," Property: \"EmissiveColor\", \"ColorRGB\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"EmissiveFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"AmbientColor\", \"ColorRGB\", \"\",0.2,0.2,0.2\r\n"); fi_fprintf(fph," Property: \"AmbientFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"DiffuseColor\", \"ColorRGB\", \"\",0.8,0.8,0.8\r\n"); fi_fprintf(fph," Property: \"DiffuseFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"Bump\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"NormalMap\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"BumpFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"TransparentColor\", \"ColorRGB\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"TransparencyFactor\", \"double\", \"\",0\r\n"); fi_fprintf(fph," Property: \"DisplacementColor\", \"ColorRGB\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"DisplacementFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"SpecularColor\", \"ColorRGB\", \"\",0.2,0.2,0.2\r\n"); fi_fprintf(fph," Property: \"SpecularFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"ShininessExponent\", \"double\", \"\",20\r\n"); fi_fprintf(fph," Property: \"ReflectionColor\", \"ColorRGB\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"ReflectionFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"Emissive\", \"Vector3D\", \"\",0,0,0\r\n"); fi_fprintf(fph," Property: \"Ambient\", \"Vector3D\", \"\",0.2,0.2,0.2\r\n"); fi_fprintf(fph," Property: \"Diffuse\", \"Vector3D\", \"\",0.8,0.8,0.8\r\n"); fi_fprintf(fph," Property: \"Specular\", \"Vector3D\", \"\",0.2,0.2,0.2\r\n"); fi_fprintf(fph," Property: \"Shininess\", \"double\", \"\",20\r\n"); fi_fprintf(fph," Property: \"Opacity\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"Reflectivity\", \"double\", \"\",0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," GlobalSettings: {\r\n"); fi_fprintf(fph," Version: 1000\r\n"); fi_fprintf(fph," Properties60: {\r\n"); fi_fprintf(fph," Property: \"UpAxis\", \"int\", \"\",1\r\n"); fi_fprintf(fph," Property: \"UpAxisSign\", \"int\", \"\",1\r\n"); fi_fprintf(fph," Property: \"FrontAxis\", \"int\", \"\",2\r\n"); fi_fprintf(fph," Property: \"FrontAxisSign\", \"int\", \"\",1\r\n"); fi_fprintf(fph," Property: \"CoordAxis\", \"int\", \"\",0\r\n"); fi_fprintf(fph," Property: \"CoordAxisSign\", \"int\", \"\",1\r\n"); fi_fprintf(fph," Property: \"OriginalUpAxis\", \"int\", \"\",-1\r\n"); fi_fprintf(fph," Property: \"OriginalUpAxisSign\", \"int\", \"\",1\r\n"); fi_fprintf(fph," Property: \"UnitScaleFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," Property: \"OriginalUnitScaleFactor\", \"double\", \"\",1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"; Object connections\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Connections: {\r\n"); fi_fprintf(fph," Connect: \"OO\", \"Model::aconcave_root\", \"Model::Scene\"\r\n"); fi_fprintf(fph," Connect: \"OO\", \"Model::Box01\", \"Model::aconcave_root\"\r\n"); fi_fprintf(fph," Connect: \"OO\", \"Material::Box01Mat\", \"Model::Box01\"\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,";Takes and animation section\r\n"); fi_fprintf(fph,";----------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Takes: {\r\n"); fi_fprintf(fph," Current: \"\"\r\n"); fi_fprintf(fph,"}\r\n"); fi_fprintf(fph,";Version 5 settings\r\n"); fi_fprintf(fph,";------------------------------------------------------------------\r\n"); fi_fprintf(fph,"\r\n"); fi_fprintf(fph,"Version5: {\r\n"); fi_fprintf(fph," AmbientRenderSettings: {\r\n"); fi_fprintf(fph," Version: 101\r\n"); fi_fprintf(fph," AmbientLightColor: 0.4,0.4,0.4,0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," FogOptions: {\r\n"); fi_fprintf(fph," FlogEnable: 0\r\n"); fi_fprintf(fph," FogMode: 0\r\n"); fi_fprintf(fph," FogDensity: 0.002\r\n"); fi_fprintf(fph," FogStart: 0.3\r\n"); fi_fprintf(fph," FogEnd: 1000\r\n"); fi_fprintf(fph," FogColor: 1,1,1,1\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," Settings: {\r\n"); fi_fprintf(fph," FrameRate: \"30\"\r\n"); fi_fprintf(fph," TimeFormat: 1\r\n"); fi_fprintf(fph," SnapOnFrames: 0\r\n"); fi_fprintf(fph," ReferenceTimeIndex: -1\r\n"); fi_fprintf(fph," TimeLineStartTime: 0\r\n"); fi_fprintf(fph," TimeLineStopTime: 46186158000\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph," RendererSetting: {\r\n"); fi_fprintf(fph," DefaultCamera: \"\"\r\n"); fi_fprintf(fph," DefaultViewingMode: 0\r\n"); fi_fprintf(fph," }\r\n"); fi_fprintf(fph,"}\r\n"); }