  We consider three variants of the problem of finding a maximum weight
restricted $2$-matching in a subcubic graph $G$. (A $2$-matching is any subset
of the edges such that each vertex is incident to at most two of its edges.)
Depending on the variant a restricted $2$-matching means a $2$-matching that is
either triangle-free or square-free or both triangle- and square-free. While
there exist polynomial time algorithms for the first two types of
$2$-matchings, they are quite complicated or use advanced methodology. For each
of the three problems we present a simple reduction to the computation of a
maximum weight $b$-matching. The reduction is conducted with the aid of
half-edges. A half-edge of edge $e$ is, informally speaking, a half of $e$
containing exactly one of its endpoints. For a subset of triangles of $G$, we
replace each edge of such a triangle with two half-edges. Two half-edges of one
edge $e$ of weight $w(e)$ may get different weights, not necessarily equal to
$\frac{1}{2}w(e)$. In the metric setting when the edge weights satisfy the
triangle inequality, this has a geometric interpretation connected to how an
incircle partitions the edges of a triangle. Our algorithms are additionally
faster than those known before. The running time of each of them is
$O(n^2\log{n})$, where $n$ denotes the number of vertices in the graph.
