/[Sims3RigEditor]/trunk/gr2lib_cpp/gr2lib_rigeditor_frm.h
ViewVC logotype

Diff of /trunk/gr2lib_cpp/gr2lib_rigeditor_frm.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 59 by william, Thu Aug 12 19:05:46 2010 UTC revision 69 by william, Fri Aug 13 17:15:09 2010 UTC
# Line 11  Line 11 
11  //#include "gr2lib_core_imports.h"  //#include "gr2lib_core_imports.h"
12  #ifndef GR2LIB_RIGEDITOR_FRM_H  #ifndef GR2LIB_RIGEDITOR_FRM_H
13  #define GR2LIB_RIGEDITOR_FRM_H  #define GR2LIB_RIGEDITOR_FRM_H
14    #include "..\gr2lib_cpp_typedefs\core.h"
15  #include "grannyfile.h"  #include "grannyfile.h"
16  //#include "guicon.h"  //#include "guicon.h"
17  #include "VSDebugOutput.h"  #include "VSDebugOutput.h"
# Line 24  Line 25 
25  #include <vcclr.h>  #include <vcclr.h>
26  using namespace std;  using namespace std;
27    
28    using namespace gr2lib_cpp::typedefs;
29  using namespace gr2lib::core;  using namespace gr2lib::core;
30  using namespace gr2lib::core::coretypes::implementation;  using namespace gr2lib::core::coretypes::implementation;
31  using namespace gr2lib::core::apiversion;  using namespace gr2lib::core::apiversion;
# Line 319  private: Line 321  private:
321                  ExporterInfo_ToManaged(_grn_file->GrannyFileInfo->ExporterInfo);                  ExporterInfo_ToManaged(_grn_file->GrannyFileInfo->ExporterInfo);
322                  // Texture List                  // Texture List
323                  Textures_ToManaged(_grn_file->GrannyFileInfo->Textures,_grn_file->GrannyFileInfo->TextureCount);                  Textures_ToManaged(_grn_file->GrannyFileInfo->Textures,_grn_file->GrannyFileInfo->TextureCount);
324                    // Material List
325                    Materials_ToManaged(_grn_file->GrannyFileInfo->Materials,_grn_file->GrannyFileInfo->MaterialCount);
326          }          }
327          void ConvertToNative()          void ConvertToNative()
328          {          {
# Line 328  private: Line 332  private:
332                  ExporterInfo_ToNative();                  ExporterInfo_ToNative();
333                  // Texture List                  // Texture List
334                  Textures_ToNative();                  Textures_ToNative();
335                    // Material List
336                    Materials_ToNative();
337          }          }
338  #pragma endregion  #pragma endregion
339    
# Line 452  private: Line 458  private:
458                                                  img->MIPLevels->Add(mip);                                                  img->MIPLevels->Add(mip);
459                                                                                                    
460                                          }                                          }
   
461                                          t->Images->Add(img);                                          t->Images->Add(img);
462                                          t->NativePointer =  *new IntPtr(toolinfo[i]);                                          t->NativePointer =  *new IntPtr(toolinfo[i]);
463                                  }                                  }
# Line 461  private: Line 466  private:
466                  }                  }
467          }          }
468  #pragma endregion  #pragma endregion
469    #pragma region Materials_ToManaged
470            void Materials_ToManaged(granny_material** toolinfo, granny_int32 MaterialCount)
471            {
472                    if (toolinfo != NULL)
473                    {
474                            GR2LibPropertyWrapper->Materials = gcnew List<Material^>();
475                            for(int i=0;i<MaterialCount;i++)
476                            {
477                                    Material^ m = gcnew Material();
478                                    if (toolinfo[i]->Texture != NULL)
479                                    {
480                                            m = gcnew Material(*new IntPtr(&toolinfo[i]->Texture));
481                                    }
482                                    
483                                    m->Name = gcnew String(reinterpret_cast<const char*>(toolinfo[i]->Name));
484                                    /*m->Maps = gcnew List<Map^>(toolinfo[i]->MapCount);
485                                    for(int j=0;j<toolinfo[i]->MapCount;j++)
486                                    {
487                                            Map^ map = gcnew Map();
488    
489                                            if(toolinfo[i]->Maps[j].Material != NULL)
490                                            {
491                                                    map =  gcnew Map(*new IntPtr(&toolinfo[i]->Maps[j].Material));
492                                            }
493    
494                                            map->Usage = gcnew String(reinterpret_cast<const char*>(toolinfo[i]->Maps[j].Usage));          
495                                            map->NativePointer = *new IntPtr(&toolinfo[i]->Maps[j]);
496                                            m->Maps->Add(map);
497                                    }*/
498    
499                                    /*if (toolinfo[i]->Texture != NULL)
500                                    {
501                                            m->TexturePointer =  *new IntPtr(&toolinfo[i]->Texture);
502                                    }
503                                    else
504                                    {
505                                            m->TexturePointer =  IntPtr::Zero;
506                                    }*/
507    
508    
509                                    ExtendedDataWrapper* ExtendedDataWrapped = new ExtendedDataWrapper(toolinfo[i]->ExtendedData, _grn_file->_logger);
510                                    List<ExtendedDataMemberStruct^>^ _ExtendedDataMember = gcnew List<ExtendedDataMemberStruct^>(ExtendedDataWrapped->MemberCount);
511    
512                                    for (int j=0;j<ExtendedDataWrapped->MemberCount;j++)
513                                    {
514                                            ExtendedDataMemberStruct^ _ExtendedDataMemberStruct = gcnew ExtendedDataMemberStruct();
515    
516                                            _ExtendedDataMemberStruct->Index = ExtendedDataWrapped->ExtendedDataMembers[j].Index;
517                                            _ExtendedDataMemberStruct->Name = gcnew String(reinterpret_cast<const char*>(ExtendedDataWrapped->ExtendedDataMembers[j].Name.c_str()));
518                                            _ExtendedDataMemberStruct->Type = (gr2lib::core::typedefs::granny_member_type)(int)ExtendedDataWrapped->ExtendedDataMembers[j].Type;
519                                            _ExtendedDataMemberStruct->Value = ExtendedDataWrapped->GetRealExtendedDataMemberValue(_ExtendedDataMemberStruct->Index);
520                                            _ExtendedDataMember->Add(_ExtendedDataMemberStruct);
521                                    }
522    
523                                    m->ExtendedData = gcnew GrannyExtendedData(_ExtendedDataMember);
524                                    
525                                    ////System::Diagnostics::Debug::WriteLine("Granny Member Type: " + reinterpret_cast<int>(toolinfo[i]->ExtendedData.Type->Type));
526                                    //System::Diagnostics::Debug::WriteLine("Namee: " + gcnew String(reinterpret_cast<const char*>(toolinfo[i]->ExtendedData.Type->Name)));
527    
528                                    m->NativePointer =  *new IntPtr(toolinfo[i]);
529                                    GR2LibPropertyWrapper->Materials->Add(m);
530                            }
531                    }
532            }
533    #pragma endregion
534    
535  #pragma region MarshalToNative  #pragma region MarshalToNative
536    
# Line 558  private: Line 628  private:
628    
629          }          }
630  #pragma endregion  #pragma endregion
631    #pragma region Materials_ToNative
632            void Materials_ToNative()
633            {
634                    _grn_file->GrannyFileInfo->MaterialCount = GR2LibPropertyWrapper->Materials->Count;
635                    for(int i=0;i<_grn_file->GrannyFileInfo->MaterialCount;i++)
636                    {
637                            _grn_file->GrannyFileInfo->Materials[i]->Name = (char*)Marshal::StringToHGlobalAnsi(GR2LibPropertyWrapper->Materials[i]->Name).ToPointer();
638    
639                            // update extended data
640                            ExtendedDataWrapper* ExtendedDataWrapped = new ExtendedDataWrapper(_grn_file->GrannyFileInfo->Materials[i]->ExtendedData, _grn_file->_logger);
641                            int MemberCount = GR2LibPropertyWrapper->Materials[i]->ExtendedData->ExtendedData->Count;
642                            for(int j=0;j<MemberCount;j++)
643                            {
644                                    Object^ value = GR2LibPropertyWrapper->Materials[i]->ExtendedData->ExtendedData[j]->Value;
645    
646                                    if (value->ToString() == (gcnew Object())->ToString()) continue;                
647    
648                                    
649                                    int MemberType = ExtendedDataWrapped->ExtendedDataMembers[j].Type;
650                                    switch(ExtendedDataWrapped->ExtendedDataMembers[j].Type)
651                                    {
652                                    //      //case granny_member_type::GrannyEndMember: return new void*(); break;
653                                    //      //case granny_member_type::GrannyInlineMember: return new void*(); break;
654                                    //      //case granny_member_type::GrannyReferenceMember: return new void*(); break;
655                                    //      //case granny_member_type::GrannyReferenceToArrayMember:  return new void*();break;
656                                    //      //case granny_member_type::GrannyArrayOfReferencesMember: return new void*(); break;
657                                    //      //case granny_member_type::GrannyVariantReferenceMember:  return new void*(); break;
658                                    //      //case granny_member_type::GrannyUnsupportedMemberType_Remove:  return new void*(); break;
659                                    //      //case granny_member_type::GrannyReferenceToVariantArrayMember:  return new void*(); break;
660                                    case granny_member_type::GrannyStringMember:  
661                                            char* _string;
662                                            _string = (char*)Marshal::StringToHGlobalAnsi((System::String^)value).ToPointer();
663                                            ((char*(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] =  _string;
664                                            break;
665                                            //case granny_member_type::GrannyTransformMember: return new void*();break;            
666                                    case granny_member_type::GrannyReal32Member:  
667                                            ((granny_real32(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_real32)value; break;
668                                    case granny_member_type::GrannyInt8Member:  
669                                            ((granny_int8(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_int8)value; break;
670                                    case granny_member_type::GrannyUInt8Member:
671                                            ((granny_uint8(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] =(granny_uint8)value; break;
672                                    case granny_member_type::GrannyBinormalInt8Member:  
673                                            ((granny_int8(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_int8)value; break;
674                                    case granny_member_type::GrannyNormalUInt8Member:  
675                                            ((granny_uint8(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_uint8)value; break;
676                                    case granny_member_type::GrannyInt16Member:
677                                            ((granny_int16(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_int16)value; break;
678                                    case granny_member_type::GrannyUInt16Member:
679                                            ((granny_uint16(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_uint16)value; break;
680                                    case granny_member_type::GrannyBinormalInt16Member:
681                                            ((granny_int16(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_int16)value; break;
682                                    case granny_member_type::GrannyNormalUInt16Member:
683                                            ((granny_uint16(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_uint16)value; break;
684                                    case granny_member_type::GrannyInt32Member:
685                                            ((granny_int32(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_int32)value; break;
686                                    case granny_member_type::GrannyUInt32Member:
687                                            ((granny_uint32(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_uint32)value; break;
688                                    case granny_member_type::GrannyReal16Member:
689                                            ((granny_real16(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = (granny_real16)value; break;
690                                    //case granny_member_type::GrannyEmptyReferenceMember:
691                                    //      ((granny_int32(*)[MAX_GRANNY_MEMBER_COUNT])_grn_file->GrannyFileInfo->Materials[i]->ExtendedData.Object)[0][j] = value; break;
692                                            //case granny_member_type::GrannyOnePastLastMemberType: break;
693                                            //case granny_member_type::GrannyBool32Member: break;
694                                    default: throw gcnew System::InvalidOperationException("Encountered an Invalid Granny Member Type: " + MemberType);
695                                    }
696    
697                                    
698                    
699    
700    
701                            }
702                    }
703            }
704    #pragma endregion
705  #pragma endregion  #pragma endregion
706    
707  #pragma endregion  #pragma endregion

Legend:
Removed from v.59  
changed lines
  Added in v.69

  ViewVC Help
Powered by ViewVC 1.1.22