int CMeshInfo::CopyData( CMeshInfo* srcdata ) { int ret = 0; HRESULT hres; CVec3f* save_diff = 0; CVec3f* save_spec = 0; CVec3f* save_amb = 0; if( !srcdata ){ DbgOut( "charpos2.cpp : CMeshInfo : CopyData : srcdata NULL !!!\n" ); return 1; } // pointer メンバーの退避 save_diff = diffuse; save_spec = specular; save_amb = ambient; // ベタコピー SetLastError( 0 ); MoveMemory( (void*)this, (const void*)srcdata, sizeof( CMeshInfo ) ); hres = GetLastError(); if( hres ){ ErrorMessage( "CMeshInfo : CopyData error ", hres ); return 1; } // pointerメンバの復元と、内容コピー diffuse = save_diff; specular = save_spec; ambient = save_amb; ret = CopyMaterial( srcdata ); if( ret ){ DbgOut( "CMeshInfo : CopyData : CopyMaterial error !!!\n" ); return 1; } //ret1 = diffuse->CopyData( srcdata->diffuse ); //ret2 = specular->CopyData( srcdata->specular ); //ret3 = ambient->CopyData( srcdata->ambient ); //if( ret1 || ret2 || ret3 ){ // DbgOut( "charpos2.cpp : MeshInfo : CopyData : material CopyData error !!!\n" ); // return 1; //} return 0; }
object::object(const object& Object) : entity(Object), id(Object), VisualEffects(Object.VisualEffects) { CopyMaterial(Object.MainMaterial, MainMaterial); }
/********************************************************************** * Function_Name: Overloading = * Return : * Comments : **********************************************************************/ Material& Material::operator =(const Material& rhsMaterial ) { CopyMaterial(rhsMaterial); return *this; }
/********************************************************************** * Function_Name: Copy Constructor * Return : * Comments : **********************************************************************/ Material::Material(const Material& rhsMaterial) { CopyMaterial(rhsMaterial); }