i'm still evaluating and trying to find functionality which will i need in final product. Planogrammer is my starting-point. I'm trying to make rack and item shaped like #725 below (could be in any direction):
In the sample Planogram, Item is a GoGroup, and it uses a GoRectangle for a background.
Rack and Shelf are derived from Display, and Display is a GoGroup with a GoGrid background. GoGrid is derived from GoRectangle.
So, the sample pretty much assumes everything is a rectangle.
It wouldn't be too much work, to define a varient of Item that used a GoPolygon as a background, and that would give you irregular shapes. But non-rectangular Racks would be a problem because Grids are fundamentally rectangular.
Well, a lot of our customers take one of our samples and grow it into their application. However, our goal for the samples is to demostrate a particular type of diagram or graphics or node/link design or user interaction or specific features (like SubGraphs) in as few lines of codes as possible.
In our Planogram sample: Display, Rack, Shelf and Item are all 100 lines of code, counting comments and blank lines.
Can you say more about your application? I can see an application like floor plan that might need non-rectangular rooms and non-rectangular furniture, but your app appears to be more like fitting puzzle pieces together.
For the floor grid. You can implement your own grid which implements a Polygon shape. It would need to implement the IGoDragSnapper interface. Demo1 has the Swimlane class which implements IGoDragSnapper.
But, I think I would just use GoGrid and "block off" the parts of the floor that aren't part of a rectangle. You could use your polygon based Item to do that.
Demo1 has a "Polygon Drawing Tool" under the Edit menu that you can adapt to drawing the polygons for your Item class. You would probably want to constrain it so it only does 90 degree angles.
- grouping symbols (attachments in booth)
sure, not a problem.
- layers (display only one kind of attachments in hall/booths)
We support layers. I would guess you would use these for things like support poles or electrical outlets, right?
Now... you seem to be talking about "attachments" both within groups and in layers, and that won't work... you have to pick one or the other. A whole group must be added to a single layer. It's easy to hide a layer. And, if you want to hide some particular object that is attached within a group, it's easy to iterate the objects and set visible=false on particular objects within the group.
I hope this helps, let me know if you have more questions....