void DruckerPrager::InitializeMaterial( const Properties& props, const GeometryType& geom, const Vector& ShapeFunctionsValues ) { mOldStress.resize( 6 ); mOldStress = ZeroVector( 6 ); mCtangent.resize(6, 6); mCtangent = ZeroMatrix( 6, 6 ); mCtangentInv.resize(6, 6); mCtangentInv = ZeroMatrix(6, 6); mOldStrain.resize( 6 ); mOldStrain = ZeroVector( 6 ); mCurrentStrain.resize( 6 ); mCurrentStrain = ZeroVector( 6 ); // mCurrentStrainInc.resize( 6 ); // mCurrentStrainInc = ZeroVector( 6 ); mCurrentStress.resize( 6 ); mCurrentStress = ZeroVector( 6 ); mCurrentPlasticStrains.resize( 6 ); mCurrentPlasticStrains = ZeroVector( 6 ); mOldSElasticStrain.resize( 6 ); mOldSElasticStrain = ZeroVector( 6 ); mCurrentElasticStrain.resize( 6 ); mCurrentElasticStrain = ZeroVector( 6 ); mOldPlasticStrains.resize( 6 ); mOldPlasticStrains = ZeroVector( 6 ); mPrestress.resize( 6 ); mPrestress = ZeroVector( 6 ); mPrestressFactor = 1.0; // mdGamma = 0.0; mAlpha = 0.0; mOldAlpha = 0.0; // mIsYielded = false; // mIsApex = false; mE = props[YOUNG_MODULUS]; mNU = props[POISSON_RATIO]; mCohesion = props[COHESION]; mHardening = props[ISOTROPIC_HARDENING_MODULUS]; double tan_phi = tan(( props[INTERNAL_FRICTION_ANGLE] ) * PI / 180 ); mEta = 3.0 * tan_phi / ( sqrt( 9.0 + 12.0 * tan_phi * tan_phi ) ); mXi = 3.0 / ( sqrt( 9.0 + 12.0 * tan_phi * tan_phi ) ); // ResetMaterial( props, geom, ShapeFunctionsValues ); // mG = mE / ( 2.0 * ( 1.0 + mNU ) ); // mK = mE / ( 3.0 * ( 1.0 - 2.0 * mNU ) ); // CalculateUnit4thSym3D(); // CalculateUnit2nd3D(); ResetMaterial( props, geom, ShapeFunctionsValues ); }
void RenderingContext::RestoreMaterial() { if (mMaterial!=nullptr) { mMaterial->Restore(); } ResetMaterial(); }
IgfxObject::IgfxObject(hIMDL mdl) : m_ref(0), m_flag(0), m_mdl(mdl), m_alpha(1.0f), m_pCalModel(0), m_pObjMats(0), m_wrldTrans(0,0,0), m_wrldScl(1,1,1), m_parent(0), m_parentBoneID(-1) { if(!m_mdl) return; memset(m_lights, 0, sizeof(m_lights)); m_mdl->AddRef(); CalCoreModel *pCalCoreModel = m_mdl->GetCalCoreModel(); //create Cal Model instance (if we are using Cal3D model) if(pCalCoreModel) { m_pCalModel = new CalModel; if(!m_pCalModel) { LogMsg(LOG_FILE, L"OBJCreate", L"Unable to allocate Cal3D Model"); return; } if(!m_pCalModel->create(pCalCoreModel)) { tCHAR errStr[MAXCHARBUFF]; mbstowcs(errStr, CalError::getLastErrorText().c_str(), MAXCHARBUFF); LogMsg(LOG_FILE, L"OBJCreate", errStr); return; } // attach all meshes to the model s32 meshId; for(meshId = 0; meshId < pCalCoreModel->getCoreMeshCount(); meshId++) { m_pCalModel->attachMesh(meshId); } // set the material set of the whole model m_pCalModel->setMaterialSet(0); m_pCalModel->update(0); } //create object materials and derive them from model u32 numMat = m_mdl->GetNumMaterial(); if(numMat > 0) { m_pObjMats = (gfxObjMat *)MemAlloc(sizeof(gfxObjMat)*numMat); if(!m_pObjMats) { LogMsg(LOG_FILE, L"OBJCreate", L"Unable to allocate Object Materials"); return; } } ResetMaterial(); MtxIdentity(&m_axis); }
void ARadiantWebViewActor::EndInteractionOverlap(class AActor* InOverlappingActor) { APawn* Pawn = Cast<APawn>(InOverlappingActor); if (CanInteract() && Pawn && ShouldSimulate(Pawn)) { CancelInteraction(Pawn); OverlappingPawns.Remove(Pawn); if ((OverlappingPawns.Num() == 0) && bSwapMaterialWhenOverlapped) { ResetMaterial(); } } }
//--------------------------------------------------------------------------- void CEditorRenderDevice::_SetupStates() { HW.Caps.Update(); for (u32 i=0; i<HW.Caps.raster.dwStages; i++){ float fBias = -1.f; CHK_DX(HW.pDevice->SetSamplerState( i, D3DSAMP_MIPMAPLODBIAS, *((LPDWORD) (&fBias)))); } EDevice.SetRS(D3DRS_DITHERENABLE, TRUE ); EDevice.SetRS(D3DRS_COLORVERTEX, TRUE ); EDevice.SetRS(D3DRS_STENCILENABLE, FALSE ); EDevice.SetRS(D3DRS_ZENABLE, TRUE ); EDevice.SetRS(D3DRS_SHADEMODE, D3DSHADE_GOURAUD ); EDevice.SetRS(D3DRS_CULLMODE, D3DCULL_CCW ); EDevice.SetRS(D3DRS_ALPHAFUNC, D3DCMP_GREATER ); EDevice.SetRS(D3DRS_LOCALVIEWER, TRUE ); EDevice.SetRS(D3DRS_NORMALIZENORMALS,TRUE ); EDevice.SetRS(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL); EDevice.SetRS(D3DRS_SPECULARMATERIALSOURCE,D3DMCS_MATERIAL); EDevice.SetRS(D3DRS_AMBIENTMATERIALSOURCE, D3DMCS_MATERIAL); EDevice.SetRS(D3DRS_EMISSIVEMATERIALSOURCE,D3DMCS_COLOR1 ); ResetMaterial(); }