Hi. I have a cityGML file containing Roof, Ground and wall surfaces.
The Ground Surface has been changed, so I should Change the Roof Surface now. But I cant find a way to do it. Can someone help me?
Hi. I have a cityGML file containing Roof, Ground and wall surfaces.
The Ground Surface has been changed, so I should Change the Roof Surface now. But I cant find a way to do it. Can someone help me?
This is pretty tricky - one possible approach could be to use an AffineWarper (or RubberSheeter). For each ground surface you will need to calculate the vertex movement from the original ground surface to the new ground surface - these will be the control vectors (you can try and use a NeigborFinder for this on the vertices where the base it the original and the candidate is the new). The control vectors will be used to calculate an Affine/Transformation Matrix. This matrix will then be applied to the roof surface. The affined surfaces will not aligned perfectly so you might need to use a CoordianteRounder to 3 decimal places.
If the new ground surfaces have more vertices than the original then this wont work