For a more clear view, here is a table of some of the Region
functions.
AppendTo[$ContextPath, "Region`"]
Clear[testfunc]
testfunc[reg_] := {ToString /@ #, Through[#[reg]]} &[{
ConvexRegionQ,
BoundedRegionQ,
RegionDimension,
Module[{dim = RegionEmbeddingDimension[#]},
var = Symbol["x" <> ToString[#]] & /@ Range[dim];
dim] &,
RegionMeasure,
RegionCentroid,
RegionProperty[#, var, "FastDescription"] &,
RegionProperty[#, var, "ImplicitDescription"] &,
RegionElement,
LevelFunction[RegionProperty[#, var, "FastDescription"][[1, 2]]] &
}] //
Grid[Insert[#, {ConvexRegionQ, BoundedRegionQ, RegionDimension,
RegionEmbeddingDimension, RegionMeasure, RegionCentroid,
FastDescription, ImplicitDescription, RegionElement,
LevelFunction}, 2]\[Transpose], Dividers -> All,
FrameStyle -> GrayLevel[.8], Alignment -> Left] & // Quiet
In addition of BoxRegion, other *Region
s also seems to be used to declare regions:
Names["Region`*Region"]
{"BallRegion", "BooleanRegion", "BoxRegion", "EllipsoidRegion", "EmptyRegion", "FullRegion", "InverseTransformedRegion", "ParametricRegion", "SimplexRegion", "TransformedRegion"}
For example, a 2D triangle embeded in 7D space:
tri3d = RandomInteger[{-10, 10}, {3, 3}];
tri7d = ArrayFlatten[{{tri3d, ConstantArray[0, {3, 4}]}}];
(* a random rotate in 7D space: *)
rt7d = RotationTransform[{{0, 0, 1, 0, 0, 0, 0}, RandomInteger[{-1, 1}, 7]},
ConstantArray[0, 7]];
tri7d = rt7d /@ tri7d;
testfunc@SimplexRegion[tri7d]

Maybe some of them (LevelFunction
) work only on "full-rank" regions?
simplex = Function[dim, SimplexRegion[RandomInteger[{-10, 10}, {dim + 1, dim}]]] @ 4
testfunc @ simplex

Some regions look like special cases:
RegionDimension@EmptyRegion[2]
$-\infty$
RegionMeasure@FullRegion[3]
$\infty$
Edit:
SimplePolygonPartition
can be used to divide self-intersecting Polygon
to simple pieces. The usage is like
SimplePolygonPartition[Polygon[...]]
SimplePolygonPartition[Polygon[...],Graphics`Region`RegionDump`FillingMethod->"OddEvenRule"]
An example can be found here.
Region`RegionMeasure[Circle[]]
-> 2 Pi :) $\endgroup$Region`RegionProperty[Polygon[{{1, 0}, {0, 1}, {2, 3}}], {x, y}, "FastDescription"]
$\endgroup$Union@Cases[ ToExpression[#, InputForm, DownValues] & /@ Names["Region`*"], HoldPattern[Region`RegionProperty[__, s_String]] :> s, Infinity]
to find{"Distance", "FastDescription", "ImplicitDescription", "Nearest", "SpaceDimension"}
. SpecialRegionProperty can take{"Assumptions", "BoundingBox", "Centroid", "ConvexQ", "Distance", "ImplicitDescription", "InjectiveParametricDescription", "Instance", "Measure", "Nearest", "ParametricDescription", "RegionDimension", "SignedDistance", "SpaceDimension"}
$\endgroup$