本文整理汇总了C++中oofegGraphicContext::getActiveCrackColor方法的典型用法代码示例。如果您正苦于以下问题:C++ oofegGraphicContext::getActiveCrackColor方法的具体用法?C++ oofegGraphicContext::getActiveCrackColor怎么用?C++ oofegGraphicContext::getActiveCrackColor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oofegGraphicContext
的用法示例。
在下文中一共展示了oofegGraphicContext::getActiveCrackColor方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawSpecial
void
Lattice2d :: drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
{
WCRec p [ 2 ];
GraphicObj *tr;
GaussPoint *gp;
FloatArray crackStatuses, cf;
if ( !gc.testElementGraphicActivity(this) ) {
return;
}
if ( gc.giveIntVarType() == IST_CrackState ) {
gp = integrationRulesArray [ 0 ]->getIntegrationPoint(0);
this->giveIPValue(crackStatuses, gp, IST_CrackStatuses, tStep);
if ( crackStatuses(0) == 1. || crackStatuses(0) == 2. || crackStatuses(0) == 3 || crackStatuses(0) == 4 ) {
FloatArray coords;
this->giveCrossSectionCoordinates(coords);
p [ 0 ].x = ( FPNum ) coords.at(1);
p [ 0 ].y = ( FPNum ) coords.at(2);
p [ 0 ].z = ( FPNum ) coords.at(3);
p [ 1 ].x = ( FPNum ) coords.at(4);
p [ 1 ].y = ( FPNum ) coords.at(5);
p [ 1 ].z = ( FPNum ) coords.at(6);
EASValsSetLayer(OOFEG_CRACK_PATTERN_LAYER);
EASValsSetLineWidth(OOFEG_CRACK_PATTERN_WIDTH);
if ( ( crackStatuses(0) == 1. ) ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else if ( crackStatuses(0) == 2. ) {
EASValsSetColor( gc.getCrackPatternColor() );
} else if ( crackStatuses(0) == 3. ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else if ( crackStatuses(0) == 4. ) {
EASValsSetColor( gc.getActiveCrackColor() );
}
tr = CreateLine3D(p);
EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, tr);
EGAttachObject(tr, ( EObjectP ) this);
EMAddGraphicsToModel(ESIModel(), tr);
}
}
}
示例2: drawSpecial
void
LTRSpace :: drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
{
int i, j, k;
WCRec q [ 4 ];
GraphicObj *tr;
double defScale = gc.getDefScale();
FloatArray crackStatuses, cf;
if ( !gc.testElementGraphicActivity(this) ) {
return;
}
if ( gc.giveIntVarType() == IST_CrackState ) {
int crackStatus;
double xc, yc, zc, length;
FloatArray crackDir;
if ( numberOfGaussPoints != 1 ) {
return;
}
// for (GaussPoint *gp: *integrationRulesArray [ 0 ] ) {
{
IntegrationRule *iRule = integrationRulesArray [ 0 ];
GaussPoint *gp = iRule->getIntegrationPoint(0);
if ( this->giveIPValue(cf, gp, IST_CrackedFlag, tStep) == 0 ) {
return;
}
if ( ( int ) cf.at(1) == 0 ) {
return;
}
//
// obtain gp global coordinates - here only one exists
// it is in centre of gravity.
xc = yc = zc = 0.;
for ( i = 0; i < 4; i++ ) {
if ( gc.getInternalVarsDefGeoFlag() ) {
// use deformed geometry
xc += ( FPNum ) this->giveNode(i + 1)->giveUpdatedCoordinate(1, tStep, defScale);
yc += ( FPNum ) this->giveNode(i + 1)->giveUpdatedCoordinate(2, tStep, defScale);
zc += ( FPNum ) this->giveNode(i + 1)->giveUpdatedCoordinate(3, tStep, defScale);
} else {
xc += ( FPNum ) this->giveNode(i + 1)->giveCoordinate(1);
yc += ( FPNum ) this->giveNode(i + 1)->giveCoordinate(2);
zc += ( FPNum ) this->giveNode(i + 1)->giveCoordinate(3);
}
}
xc = xc / 4.;
yc = yc / 4.;
zc = zc / 4.;
length = TR_LENGHT_REDUCT * pow(this->computeVolumeAround(gp), 1. / 3.) / 2.0;
if ( this->giveIPValue(crackDir, gp, IST_CrackDirs, tStep) ) {
this->giveIPValue(crackStatuses, gp, IST_CrackStatuses, tStep);
for ( i = 1; i <= 3; i++ ) {
crackStatus = ( int ) crackStatuses.at(i);
if ( ( crackStatus != pscm_NONE ) && ( crackStatus != pscm_CLOSED ) ) {
// draw a crack
// this element is 3d element
if ( i == 1 ) {
j = 2;
k = 3;
} else if ( i == 2 ) {
j = 3;
k = 1;
} else {
j = 1;
k = 2;
}
q [ 0 ].x = ( FPNum ) xc + 0.5 * crackDir.at(0 + j) * length + 0.5 * crackDir.at(0 + k) * length;
q [ 0 ].y = ( FPNum ) yc + 0.5 * crackDir.at(3 + j) * length + 0.5 * crackDir.at(3 + k) * length;
q [ 0 ].z = ( FPNum ) zc + 0.5 * crackDir.at(6 + j) * length + 0.5 * crackDir.at(6 + k) * length;
q [ 1 ].x = ( FPNum ) xc + 0.5 * crackDir.at(0 + j) * length - 0.5 * crackDir.at(0 + k) * length;
q [ 1 ].y = ( FPNum ) yc + 0.5 * crackDir.at(3 + j) * length - 0.5 * crackDir.at(3 + k) * length;
q [ 1 ].z = ( FPNum ) zc + 0.5 * crackDir.at(6 + j) * length - 0.5 * crackDir.at(6 + k) * length;
q [ 2 ].x = ( FPNum ) xc - 0.5 * crackDir.at(0 + j) * length - 0.5 * crackDir.at(0 + k) * length;
q [ 2 ].y = ( FPNum ) yc - 0.5 * crackDir.at(3 + j) * length - 0.5 * crackDir.at(3 + k) * length;
q [ 2 ].z = ( FPNum ) zc - 0.5 * crackDir.at(6 + j) * length - 0.5 * crackDir.at(6 + k) * length;
q [ 3 ].x = ( FPNum ) xc - 0.5 * crackDir.at(0 + j) * length + 0.5 * crackDir.at(0 + k) * length;
q [ 3 ].y = ( FPNum ) yc - 0.5 * crackDir.at(3 + j) * length + 0.5 * crackDir.at(3 + k) * length;
q [ 3 ].z = ( FPNum ) zc - 0.5 * crackDir.at(6 + j) * length + 0.5 * crackDir.at(6 + k) * length;
EASValsSetLayer(OOFEG_CRACK_PATTERN_LAYER);
EASValsSetLineWidth(OOFEG_CRACK_PATTERN_WIDTH);
if ( ( crackStatus == pscm_SOFTENING ) || ( crackStatus == pscm_OPEN ) ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else {
EASValsSetColor( gc.getCrackPatternColor() );
}
// EASValsSetFillStyle (FILL_HOLLOW);
tr = CreateQuad3D(q);
EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, tr);
//.........这里部分代码省略.........
示例3: drawSpecial
void
Lattice2d :: drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
{
WCRec l [ 2 ];
GraphicObj *tr;
GaussPoint *gp;
FloatArray crackStatuses, cf;
if ( !gc.testElementGraphicActivity(this) ) {
return;
}
if ( gc.giveIntVarType() == IST_CrackState ) {
gp = integrationRulesArray [ 0 ]->getIntegrationPoint(0);
this->giveIPValue(crackStatuses, gp, IST_CrackStatuses, tStep);
if ( crackStatuses(0) == 1. || crackStatuses(0) == 2. || crackStatuses(0) == 3 || crackStatuses(0) == 4 ) {
double x1, y1, x2, y2;
x1 = this->giveNode(1)->giveCoordinate(1);
y1 = this->giveNode(1)->giveCoordinate(2);
x2 = this->giveNode(2)->giveCoordinate(1);
y2 = this->giveNode(2)->giveCoordinate(2);
//Compute normal and shear direction
FloatArray normalDirection;
FloatArray shearDirection;
normalDirection.resize(2);
normalDirection.zero();
shearDirection.resize(2);
shearDirection.zero();
normalDirection.at(1) = x2 - x1;
normalDirection.at(2) = y2 - y1;
normalDirection.normalize();
if ( normalDirection.at(2) == 0. ) {
shearDirection.at(1) = 0.;
shearDirection.at(2) = 1.;
} else {
shearDirection.at(1) = 1.0;
shearDirection.at(2) =
-normalDirection.at(1) / normalDirection.at(2);
}
shearDirection.normalize();
l [ 0 ].x = ( FPNum ) this->gpCoords.at(1) - shearDirection.at(1) * this->width / 2.;
l [ 0 ].y = ( FPNum ) this->gpCoords.at(2) - shearDirection.at(2) * this->width / 2.;
l [ 0 ].z = 0.;
l [ 1 ].x = ( FPNum ) this->gpCoords.at(1) + shearDirection.at(1) * this->width / 2.;
;
l [ 1 ].y = ( FPNum ) this->gpCoords.at(2) + shearDirection.at(2) * this->width / 2.;
l [ 1 ].z = 0.;
EASValsSetLayer(OOFEG_CRACK_PATTERN_LAYER);
EASValsSetLineWidth(OOFEG_CRACK_PATTERN_WIDTH);
if ( ( crackStatuses(0) == 1. ) ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else if ( crackStatuses(0) == 2. ) {
EASValsSetColor( gc.getCrackPatternColor() );
} else if ( crackStatuses(0) == 3. ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else if ( crackStatuses(0) == 4. ) {
EASValsSetColor( gc.getActiveCrackColor() );
}
tr = CreateLine3D(l);
EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, tr);
EMAddGraphicsToModel(ESIModel(), tr);
}
}
}
示例4: drawSpecial
void
LSpace :: drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
{
int i, j, k;
WCRec q [ 4 ];
GraphicObj *tr;
FloatArray crackStatuses, cf;
if ( !gc.testElementGraphicActivity(this) ) {
return;
}
if ( gc.giveIntVarType() == IST_CrackState ) {
int crackStatus;
FloatArray gpc;
double length;
FloatArray crackDir;
for ( GaussPoint *gp: *this->giveDefaultIntegrationRulePtr() ) {
if ( this->giveIPValue(cf, gp, IST_CrackedFlag, tStep) == 0 ) {
return;
}
if ( ( int ) cf.at(1) == 0 ) {
return;
}
//
// obtain gp global coordinates
this->computeGlobalCoordinates( gpc, * gp->giveNaturalCoordinates() );
length = 0.3333 * cbrt(this->computeVolumeAround(gp));
if ( this->giveIPValue(crackDir, gp, IST_CrackDirs, tStep) ) {
this->giveIPValue(crackStatuses, gp, IST_CrackStatuses, tStep);
for ( i = 1; i <= 3; i++ ) {
crackStatus = ( int ) crackStatuses.at(i);
if ( ( crackStatus != pscm_NONE ) && ( crackStatus != pscm_CLOSED ) ) {
// draw a crack
// this element is 3d element
if ( i == 1 ) {
j = 2;
k = 3;
} else if ( i == 2 ) {
j = 3;
k = 1;
} else {
j = 1;
k = 2;
}
q [ 0 ].x = ( FPNum ) gpc.at(1) + 0.5 * crackDir.at(0 + j) * length + 0.5 * crackDir.at(0 + k) * length;
q [ 0 ].y = ( FPNum ) gpc.at(2) + 0.5 * crackDir.at(3 + j) * length + 0.5 * crackDir.at(3 + k) * length;
q [ 0 ].z = ( FPNum ) gpc.at(3) + 0.5 * crackDir.at(6 + j) * length + 0.5 * crackDir.at(6 + k) * length;
q [ 1 ].x = ( FPNum ) gpc.at(1) + 0.5 * crackDir.at(0 + j) * length - 0.5 * crackDir.at(0 + k) * length;
q [ 1 ].y = ( FPNum ) gpc.at(2) + 0.5 * crackDir.at(3 + j) * length - 0.5 * crackDir.at(3 + k) * length;
q [ 1 ].z = ( FPNum ) gpc.at(3) + 0.5 * crackDir.at(6 + j) * length - 0.5 * crackDir.at(6 + k) * length;
q [ 2 ].x = ( FPNum ) gpc.at(1) - 0.5 * crackDir.at(0 + j) * length - 0.5 * crackDir.at(0 + k) * length;
q [ 2 ].y = ( FPNum ) gpc.at(2) - 0.5 * crackDir.at(3 + j) * length - 0.5 * crackDir.at(3 + k) * length;
q [ 2 ].z = ( FPNum ) gpc.at(3) - 0.5 * crackDir.at(6 + j) * length - 0.5 * crackDir.at(6 + k) * length;
q [ 3 ].x = ( FPNum ) gpc.at(1) - 0.5 * crackDir.at(0 + j) * length + 0.5 * crackDir.at(0 + k) * length;
q [ 3 ].y = ( FPNum ) gpc.at(2) - 0.5 * crackDir.at(3 + j) * length + 0.5 * crackDir.at(3 + k) * length;
q [ 3 ].z = ( FPNum ) gpc.at(3) - 0.5 * crackDir.at(6 + j) * length + 0.5 * crackDir.at(6 + k) * length;
EASValsSetLayer(OOFEG_CRACK_PATTERN_LAYER);
EASValsSetLineWidth(OOFEG_CRACK_PATTERN_WIDTH);
if ( ( crackStatus == pscm_SOFTENING ) || ( crackStatus == pscm_OPEN ) ) {
EASValsSetColor( gc.getActiveCrackColor() );
} else {
EASValsSetColor( gc.getCrackPatternColor() );
}
// EASValsSetFillStyle (FILL_HOLLOW);
tr = CreateQuad3D(q);
EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, tr);
EMAddGraphicsToModel(ESIModel(), tr);
}
}
}
} // end loop over gp
}
}