summaryrefslogtreecommitdiff
path: root/filter/source/graphicfilter/idxf/dxf2mtf.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'filter/source/graphicfilter/idxf/dxf2mtf.cxx')
-rw-r--r--filter/source/graphicfilter/idxf/dxf2mtf.cxx56
1 files changed, 31 insertions, 25 deletions
diff --git a/filter/source/graphicfilter/idxf/dxf2mtf.cxx b/filter/source/graphicfilter/idxf/dxf2mtf.cxx
index c22e0a4b4b7e..e4e9f1782c00 100644
--- a/filter/source/graphicfilter/idxf/dxf2mtf.cxx
+++ b/filter/source/graphicfilter/idxf/dxf2mtf.cxx
@@ -52,9 +52,10 @@ long DXF2GDIMetaFile::GetEntityColor(const DXFBasicEntity & rE)
nColor=rE.nColor;
if (nColor==256) {
- if (rE.sLayer[0]=='0' && rE.sLayer[1]==0) nColor=nParentLayerColor;
- else {
- pLayer=pDXF->aTables.SearchLayer(rE.sLayer);
+ if (rE.m_sLayer.getLength() < 2) {
+ nColor=nParentLayerColor;
+ } else {
+ pLayer=pDXF->aTables.SearchLayer(rE.m_sLayer);
if (pLayer!=NULL) nColor=pLayer->nColor;
else nColor=nParentLayerColor;
}
@@ -63,12 +64,12 @@ long DXF2GDIMetaFile::GetEntityColor(const DXFBasicEntity & rE)
return nColor;
}
-DXFLineInfo DXF2GDIMetaFile::LTypeToDXFLineInfo(const char * sLineType)
+DXFLineInfo DXF2GDIMetaFile::LTypeToDXFLineInfo(OString const& rLineType)
{
const DXFLType * pLT;
DXFLineInfo aDXFLineInfo;
- pLT=pDXF->aTables.SearchLType(sLineType);
+ pLT = pDXF->aTables.SearchLType(rLineType);
if (pLT==NULL || pLT->nDashCount == 0) {
aDXFLineInfo.eStyle = LINE_SOLID;
}
@@ -125,18 +126,23 @@ DXFLineInfo DXF2GDIMetaFile::GetEntityDXFLineInfo(const DXFBasicEntity & rE)
aDXFLineInfo.fDotLen = 0;
aDXFLineInfo.fDistance = 0;
- if (strcmp(rE.sLineType,"BYLAYER")==0) {
- if (rE.sLayer[0]=='0' && rE.sLayer[1]==0) aDXFLineInfo=aParentLayerDXFLineInfo;
- else {
- pLayer=pDXF->aTables.SearchLayer(rE.sLayer);
- if (pLayer!=NULL) aDXFLineInfo=LTypeToDXFLineInfo(pLayer->sLineType);
+ if (rE.m_sLineType == "BYLAYER") {
+ if (rE.m_sLayer.getLength() < 2) {
+ aDXFLineInfo=aParentLayerDXFLineInfo;
+ } else {
+ pLayer=pDXF->aTables.SearchLayer(rE.m_sLayer);
+ if (pLayer!=NULL) {
+ aDXFLineInfo = LTypeToDXFLineInfo(pLayer->m_sLineType);
+ }
else aDXFLineInfo=aParentLayerDXFLineInfo;
}
}
- else if (strcmp(rE.sLineType,"BYBLOCK")==0) {
+ else if (rE.m_sLineType == "BYBLOCK") {
aDXFLineInfo=aBlockDXFLineInfo;
}
- else aDXFLineInfo=LTypeToDXFLineInfo(rE.sLineType);
+ else {
+ aDXFLineInfo = LTypeToDXFLineInfo(rE.m_sLineType);
+ }
return aDXFLineInfo;
}
@@ -415,7 +421,6 @@ void DXF2GDIMetaFile::DrawTextEntity(const DXFTextEntity & rE, const DXFTransfor
double fA;
sal_uInt16 nHeight;
short nAng;
- rtl::OString aStr( rE.sText );
DXFTransform aT( DXFTransform(rE.fXScale,rE.fHeight,1.0,rE.fRotAngle,rE.aP0), rTransform );
aT.TransDir(DXFVector(0,1,0),aV);
nHeight=(sal_uInt16)(aV.Abs()+0.5);
@@ -424,7 +429,8 @@ void DXF2GDIMetaFile::DrawTextEntity(const DXFTextEntity & rE, const DXFTransfor
aT.TransDir(DXFVector(1,0,0),aV);
if ( SetFontAttribute( rE,nAng, nHeight, aV. Abs() ) )
{
- rtl::OUString aUString(rtl::OStringToOUString(aStr, pDXF->getTextEncoding()));
+ rtl::OUString const aUString(
+ rtl::OStringToOUString(rE.m_sText, pDXF->getTextEncoding()));
aT.Transform( DXFVector( 0, 0, 0 ), aPt );
pVirDev->DrawText( aPt, aUString );
}
@@ -434,7 +440,7 @@ void DXF2GDIMetaFile::DrawTextEntity(const DXFTextEntity & rE, const DXFTransfor
void DXF2GDIMetaFile::DrawInsertEntity(const DXFInsertEntity & rE, const DXFTransform & rTransform)
{
const DXFBlock * pB;
- pB=pDXF->aBlocks.Search(rE.sName);
+ pB=pDXF->aBlocks.Search(rE.m_sName);
if (pB!=NULL) {
DXFTransform aDXFTransform1(1.0,1.0,1.0,DXFVector(0.0,0.0,0.0)-pB->aBasePoint);
DXFTransform aDXFTransform2(rE.fXScale,rE.fYScale,rE.fZScale,rE.fRotAngle,rE.aP0);
@@ -450,11 +456,11 @@ void DXF2GDIMetaFile::DrawInsertEntity(const DXFInsertEntity & rE, const DXFTran
aSavedParentLayerDXFLineInfo=aParentLayerDXFLineInfo;
nBlockColor=GetEntityColor(rE);
aBlockDXFLineInfo=GetEntityDXFLineInfo(rE);
- if (rE.sLayer[0]!='0' || rE.sLayer[1]!=0) {
- DXFLayer * pLayer=pDXF->aTables.SearchLayer(rE.sLayer);
+ if (rE.m_sLayer.getLength() > 1) {
+ DXFLayer * pLayer=pDXF->aTables.SearchLayer(rE.m_sLayer);
if (pLayer!=NULL) {
nParentLayerColor=pLayer->nColor;
- aParentLayerDXFLineInfo=LTypeToDXFLineInfo(pLayer->sLineType);
+ aParentLayerDXFLineInfo = LTypeToDXFLineInfo(pLayer->m_sLineType);
}
}
DrawEntities(*pB,aT);
@@ -474,7 +480,6 @@ void DXF2GDIMetaFile::DrawAttribEntity(const DXFAttribEntity & rE, const DXFTran
double fA;
sal_uInt16 nHeight;
short nAng;
- rtl::OString aStr( rE.sText );
DXFTransform aT( DXFTransform( rE.fXScale, rE.fHeight, 1.0, rE.fRotAngle, rE.aP0 ), rTransform );
aT.TransDir(DXFVector(0,1,0),aV);
nHeight=(sal_uInt16)(aV.Abs()+0.5);
@@ -483,7 +488,8 @@ void DXF2GDIMetaFile::DrawAttribEntity(const DXFAttribEntity & rE, const DXFTran
aT.TransDir(DXFVector(1,0,0),aV);
if (SetFontAttribute(rE,nAng,nHeight,aV.Abs()))
{
- rtl::OUString aUString(rtl::OStringToOUString(aStr, pDXF->getTextEncoding()));
+ rtl::OUString const aUString(
+ rtl::OStringToOUString(rE.m_sText, pDXF->getTextEncoding()));
aT.Transform( DXFVector( 0, 0, 0 ), aPt );
pVirDev->DrawText( aPt, aUString );
}
@@ -645,7 +651,7 @@ void DXF2GDIMetaFile::Draw3DFaceEntity(const DXF3DFaceEntity & rE, const DXFTran
void DXF2GDIMetaFile::DrawDimensionEntity(const DXFDimensionEntity & rE, const DXFTransform & rTransform)
{
const DXFBlock * pB;
- pB=pDXF->aBlocks.Search(rE.sPseudoBlock);
+ pB=pDXF->aBlocks.Search(rE.m_sPseudoBlock);
if (pB!=NULL) {
DXFTransform aT(
DXFTransform(1.0,1.0,1.0,DXFVector(0.0,0.0,0.0)-pB->aBasePoint),
@@ -659,11 +665,11 @@ void DXF2GDIMetaFile::DrawDimensionEntity(const DXFDimensionEntity & rE, const D
aSavedParentLayerDXFLineInfo=aParentLayerDXFLineInfo;
nBlockColor=GetEntityColor(rE);
aBlockDXFLineInfo=GetEntityDXFLineInfo(rE);
- if (rE.sLayer[0]!='0' || rE.sLayer[1]!=0) {
- DXFLayer * pLayer=pDXF->aTables.SearchLayer(rE.sLayer);
+ if (rE.m_sLayer.getLength() > 1) {
+ DXFLayer * pLayer=pDXF->aTables.SearchLayer(rE.m_sLayer);
if (pLayer!=NULL) {
nParentLayerColor=pLayer->nColor;
- aParentLayerDXFLineInfo=LTypeToDXFLineInfo(pLayer->sLineType);
+ aParentLayerDXFLineInfo = LTypeToDXFLineInfo(pLayer->m_sLineType);
}
}
DrawEntities(*pB,aT);
@@ -787,7 +793,7 @@ sal_Bool DXF2GDIMetaFile::Convert(const DXFRepresentation & rDXF, GDIMetaFile &
pLayer=pDXF->aTables.SearchLayer("0");
if (pLayer!=NULL) {
nParentLayerColor=pLayer->nColor & 0xff;
- aParentLayerDXFLineInfo=LTypeToDXFLineInfo(pLayer->sLineType);
+ aParentLayerDXFLineInfo = LTypeToDXFLineInfo(pLayer->m_sLineType);
}
else {
nParentLayerColor=7;