Show
Ignore:
Timestamp:
03/21/10 00:19:35 (5 years ago)
Author:
paulmartz
Message:

2.8 branch: Mergine recent changes to FBX. Revisions in this commit: r11251, r11252, r11262.

Location:
OpenSceneGraph/branches/OpenSceneGraph-2.8
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/branches/OpenSceneGraph-2.8

    • Property svn:mergeinfo
      •  

        old new  
        11/OpenSceneGraph/branches/OpenSceneGraph-2.8.2:10664 
        2 /OpenSceneGraph/trunk:9769,9816-9818,9826-9827,9837-9843,9847,9850,9854-9857,9860-9861,9865,9869,9879-9880,9885,9895,9906,9910,9912,9932-9933,9948,9959-9960,9965,9968-9969,9990,10010,10012-10014,10030,10040-10041,10053,10057,10076,10079-10080,10082,10084,10088,10128,10149,10161,10208,10264,10283,10340,10391-10392,10408,10414,10417,10422,10440,10456,10487,10491,10520,10538,10622-10623,10625,10671-10672,10697,10722,10753,10758,10761,10788,10805,10809,10818,10851,10853-10855,10858,10887,10891-10892,10914,10923,10925,10932-10933,10938,10941-10942,10945,10961,11019,11032-11035,11056,11111,11123,11127,11131,11159,11165,11173,11175,11177,11180,11182,11194,11203,11237 
         2/OpenSceneGraph/trunk:9769,9816-9818,9826-9827,9837-9843,9847,9850,9854-9857,9860-9861,9865,9869,9879-9880,9885,9895,9906,9910,9912,9932-9933,9948,9959-9960,9965,9968-9969,9990,10010,10012-10014,10030,10040-10041,10053,10057,10076,10079-10080,10082,10084,10088,10128,10149,10161,10208,10264,10283,10340,10391-10392,10408,10414,10417,10422,10440,10456,10487,10491,10520,10538,10622-10623,10625,10671-10672,10697,10722,10753,10758,10761,10788,10805,10809,10818,10851,10853-10855,10858,10887,10891-10892,10914,10923,10925,10932-10933,10938,10941-10942,10945,10961,11019,11032-11035,11056,11111,11123,11127,11131,11159,11165,11173,11175,11177,11180,11182,11194,11203,11237,11251-11252,11262 
  • OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgPlugins

    • Property svn:mergeinfo
      •  

        old new  
        11/OpenSceneGraph/branches/OpenSceneGraph-2.8.2/src/osgPlugins:10664 
        22/OpenSceneGraph/trunk:10539 
        3 /OpenSceneGraph/trunk/src/osgPlugins:9769,9816-9818,9826-9827,9837-9843,9847,9850,9854-9857,9860-9861,9865,9869,9879-9880,9885,9895,9906,9910,9912,9932-9933,9948,9959-9960,9965,9968-9969,9990,10010,10012-10014,10030,10040-10041,10053,10057,10076,10079-10080,10082,10084,10088,10128,10149,10161,10208,10264,10283,10340,10391-10392,10408,10414,10417,10422,10440,10456,10487,10491,10520,10538,10622-10623,10625,10671-10672,10697,10722,10753,10758,10761,10788,10805,10809,10818,10851,10853-10855,10858,10887,10891-10892,10914,10923,10925,10932-10933,10938,10941-10942,10945,10961,11019,11032-11035,11056,11111,11123,11127,11131,11159,11165,11173,11175,11177,11180,11182,11194,11203,11237 
         3/OpenSceneGraph/trunk/src/osgPlugins:9769,9816-9818,9826-9827,9837-9843,9847,9850,9854-9857,9860-9861,9865,9869,9879-9880,9885,9895,9906,9910,9912,9932-9933,9948,9959-9960,9965,9968-9969,9990,10010,10012-10014,10030,10040-10041,10053,10057,10076,10079-10080,10082,10084,10088,10128,10149,10161,10208,10264,10283,10340,10391-10392,10408,10414,10417,10422,10440,10456,10487,10491,10520,10538,10622-10623,10625,10671-10672,10697,10722,10753,10758,10761,10788,10805,10809,10818,10851,10853-10855,10858,10887,10891-10892,10914,10923,10925,10932-10933,10938,10941-10942,10945,10961,11019,11032-11035,11056,11111,11123,11127,11131,11159,11165,11173,11175,11177,11180,11182,11194,11203,11237,11251-11252,11262 
  • OpenSceneGraph/branches/OpenSceneGraph-2.8/src/osgPlugins/fbx/fbxRNode.cpp

    r11213 r11264  
    325325    std::map<KFbxNode*, osg::Node*>& nodeMap, 
    326326    BindMatrixMap& boneBindMatrices, 
     327    const std::set<const KFbxNode*>& fbxSkeletons, 
    327328    std::map<KFbxNode*, osgAnimation::Skeleton*>& skeletonMap, 
    328329    const osgDB::ReaderWriter::Options* options) 
     
    349350            bIsBone = true; 
    350351        } 
     352    } 
     353 
     354    if (!bIsBone && fbxSkeletons.find(pNode) != fbxSkeletons.end()) 
     355    { 
     356        bIsBone = true; 
    351357    } 
    352358 
     
    378384            pSdkManager, pChildNode, pAnimationManager, 
    379385            bChildIsBone, nLightCount, fbxMaterialToOsgStateSet, nodeMap, 
    380             boneBindMatrices, skeletonMap, options); 
     386            boneBindMatrices, fbxSkeletons, skeletonMap, options); 
    381387        if (childResult.error()) 
    382388        { 
     
    426432            size_t bindMatrixCount = boneBindMatrices.size(); 
    427433            osgDB::ReaderWriter::ReadResult meshRes = readFbxMesh(pSdkManager, 
    428                 pNode, pAnimationManager, stateSetList, boneBindMatrices, skeletonMap); 
     434                pNode, pAnimationManager, stateSetList, boneBindMatrices, 
     435                fbxSkeletons, skeletonMap); 
    429436            if (meshRes.error()) 
    430437            { 
     
    491498    if (bCreateSkeleton) 
    492499    { 
    493         osgAnimation::Skeleton* osgSkeleton = getSkeleton(pNode, skeletonMap); 
     500        osgAnimation::Skeleton* osgSkeleton = getSkeleton(pNode, fbxSkeletons, skeletonMap); 
    494501        osgSkeleton->setDefaultUpdateCallback(); 
    495502        pAddChildrenTo->addChild(osgSkeleton); 
     
    511518 
    512519osgAnimation::Skeleton* getSkeleton(KFbxNode* fbxNode, 
     520    const std::set<const KFbxNode*>& fbxSkeletons, 
    513521    std::map<KFbxNode*, osgAnimation::Skeleton*>& skeletonMap) 
    514522{ 
    515523    //Find the first non-skeleton ancestor of the node. 
    516524    while (fbxNode && 
    517         fbxNode->GetNodeAttribute() && 
    518         fbxNode->GetNodeAttribute()->GetAttributeType() == KFbxNodeAttribute::eSKELETON) 
     525        ((fbxNode->GetNodeAttribute() && 
     526        fbxNode->GetNodeAttribute()->GetAttributeType() == KFbxNodeAttribute::eSKELETON) || 
     527        fbxSkeletons.find(fbxNode) != fbxSkeletons.end())) 
    519528    { 
    520529        fbxNode = fbxNode->GetParent();