Versie 4.13

LUDE#30224 Fix voor Vectorworks DWF oppervlakte afwijking.
Merk op dat wel alleen een fix in whipfile.cpp hebben gedaan voor de oppervlakte berekening.
In Whip2DCImpl.cpp zouden we nog kunnen/moeten fixen dat de DWG coördinaten in de about popup kloppen.

svn path=/Slnkdwf/trunk/; revision=30259
This commit is contained in:
Jos Groot Lipman
2016-08-11 11:45:59 +00:00
parent 8715549c32
commit 0340182217
2 changed files with 15 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
// Zorg dat versies alfabetisch altijd op elkaar volgen!
#define SLNK_MAJOR_VERSION 4
#define SLNK_MINOR_VERSION 12
#define SLNK_MINOR_VERSION 13
#define SLNK_BUILD_VERSION 0
// Define resource strings

View File

@@ -216,6 +216,17 @@ STDMETHODIMP CWhipFile::SetFilterLayers(BSTR reLayers)
return S_OK;
}
// LUDE#30224
// Vectorworks tekeningen blijken wel eens een (negatieve) z-component in de units te hebben
// Met forse tegenzin corrigeer ik dat door hem hier op 1.0 te zetten
// Merk op: alle AutoCAD dwf's die ik ooit zag hebben hem al op 1.0 staan
WT_Units fixUnits(const WT_Units orgunits)
{
WT_Matrix matrix = orgunits.application_to_dwf_transform();
matrix(2, 2) = 1.0;
return WT_Units(matrix, orgunits.units());
}
void CWhipFile::read_for_contours()
{
WT_Result result;
@@ -236,7 +247,7 @@ void CWhipFile::read_for_contours()
// Nu zijn ze wel een keer bekend, we hebben ze later weer nodig
// m_contunits=m_W2DFile.rendition().drawing_info().units();werkt niet goed met paperspace
// Deze doet het in de praktijk altijd wel?
m_contunits=m_W2DFile.rendition().viewport().viewport_units();
m_contunits = fixUnits(m_W2DFile.rendition().viewport().viewport_units());
m_view=m_W2DFile.rendition().rendering_options().view();
@@ -246,7 +257,7 @@ void CWhipFile::read_for_contours()
}
// Result: Area in original drawing coordinates
// Veronderstel dat het 5e punt gelijk is aan het eerste (daarom aan einde delen door 2?)
// Veronderstel dat het laatste punt gelijk is aan het eerste
double PolygonArea(WT_Point_Set * ps, WT_Units units)
{
int i,j;
@@ -409,7 +420,7 @@ xxxx++;
//WT_Units units=file.rendition().drawing_info().units(); werkt niet goed met paperspace
// Waarom zetten we hier m_contunits eigenlijk nog niet gewoon direct?
WT_Units units=file.rendition().viewport().viewport_units();
WT_Units units = fixUnits(file.rendition().viewport().viewport_units());
// WD_True as we are going to mess
CSLNKContourImpl *myContour;