import { State } from "./State";
/** Categories relevant to space planning. */
var Category = /** @class */ (function () {
    /** Setup category, all category values are set to false. */
    function Category() {
        this.isChild = false;
        this.isStandardLR = false;
    }
    Category.hasCategory = function (id, category) {
        return State.API.GetCategories(id).indexOf(category) > -1;
    };
    /** The object needs to be placed on ground. */
    Category.OnGround = "auf-boden";
    /** The object needs to be placed on something. */
    Category.OnSomething = "aufliegend";
    /** In case Left/Right Att Pt exists, there must be a valid neighbor there. */
    Category.LeftRightChain = "links-rechts-verkettet";
    /** The object is mounted on back side. */
    Category.BackSideMounted = "rueckseitig-haengend";
    /** The object is a child */
    Category.Child = "kind";
    /** The object can float (position.y may be larger than 0) */
    Category.Floating = "schwebend";
    /** The object describes a room or environment with floor and walls */
    Category.Environment = "umgebung";
    /** The object describes a wall as part of an environment */
    Category.Wall = "wand";
    /** The object describes a wallbase as part of an environment */
    Category.WallBase = "wand-grund";
    /** The object describes a floor as part of an environment */
    Category.Floor = "boden";
    /** The object is an addition to the wall, needing a hole, e.g. door or window */
    Category.CuttingThroughWall = "durchWand";
    /** The object is an obstacle for Planning, not an normal product and should be measured (if at all) like doors and windows */
    Category.Installation = "installation";
    /** The object should not be considered for dimensioning. */
    Category.NotDimensioned = "nicht-bemasst";
    /** The object acts as an interior element, e.g. special treatment during dimensioning. */
    Category.InteriorElement = "innenelement";
    /** Dont filter the article in the MultiArticle view, i.e. always show it. */
    Category.DontFilter = "nicht-filtern";
    /** The object is used to contain a niche and should not be visible in article lists */
    Category.NicheContainer = "nischencontainer";
    /** The object possibly has children with "HasSameLifetimeAsParent" category set */
    Category.HasLifetimeDependentChildren = "hat-lebenszeit-abhaengige-kindelemente";
    /** The object has to be deleted with containing parent and cannot be deleted on its own */
    Category.HasSameLifetimeAsParent = "existiert-solange-elternelement-existiert";
    /** The object can be rotated only when the containing parent is rotated */
    Category.RotatableWithParentOnly = "nur-mit-elternelement-drehbar";
    /** The object can be moved only when the containing parent is moved */
    Category.MovableWithParentOnly = "nur-mit-elternelement-verschiebbar";
    /** The object is inserted as a child and possibly extends the bounding box of its parent */
    Category.ChildExtendsParentBoundingBox = "kind-erweitert-eltern-bounding-box";
    return Category;
}());
export { Category };
