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:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user