Exemple #1
0
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();
}
Exemple #3
0
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();
		}
	}
}
Exemple #5
0
//---------------------------------------------------------------------------
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();
}