Print at Dec 18, 2025, 3:19:13 PM

Posted by mark at May 17, 2009, 9:54:00 AM
Re: Feat. Req: Automatically measure all walls
Hi,

If "measure" means something like total length of all walls or area wouldn't it be pretty easy to make a plugin and then just run from the menu ? i.e. like volumeplugin.

Something like ....

VolumnePlugin.java

public void execute() {
float volumeInCm3 = 0;
double wallLength = 0;
double totalWallLength = 0;
StringBuffer wallDimensionsMsg = new StringBuffer();

for (Wall wall : getHome().getWalls()){
if (wall.getXStart() == wall.getXEnd()) {
wallLength = wall.getYStart() - wall.getYEnd();
} else if (wall.getYStart() == wall.getYEnd()){
wallLength = wall.getXStart() - wall.getXEnd();
} else {
wallLength = Math.sqrt(Math.pow((wall.getXEnd()-wall.getXStart()),2)
+ (Math.pow((wall.getYEnd() - wall.getYStart()),2)));
}

// get rid of negative values
wallLength = ((wallLength < 0 ? -wallLength : wallLength));
totalWallLength+=wallLength;
wallDimensionsMsg.append("Wall: length " + wallLength + "\n");

wallDimensionsMsg.append(String.format(" Total wall length = %.2f cm", totalWallLength));
JOptionPane.showMessageDialog(null, wallDimensionsMsg);
}

......

Output would be " Total wall length = 1455.00 cm"

Excuse me if I got the wrong end of the stick :)

ta
mark