public static BoxPosition Transform(BoxPosition boxPosition, Transform3D transform) { if (!boxPosition.IsValid) throw new Exception("Invalid box position : can not transform"); return new BoxPosition( transform.transform(boxPosition.Position) , HalfAxis.ToHalfAxis(transform.transformRot(HalfAxis.ToVector3D(boxPosition.DirectionLength))) , HalfAxis.ToHalfAxis(transform.transformRot(HalfAxis.ToVector3D(boxPosition.DirectionWidth))) ); }
public CylPosition Transform(Transform3D transf) { return new CylPosition( transf.transform(_vPosition), HalfAxis.ToHalfAxis(transf.transformRot(HalfAxis.ToVector3D(_axis))) ); }
public static CylPosition Transform(CylPosition cylPosition, Transform3D transform) { return new CylPosition( transform.transform(cylPosition._vPosition), HalfAxis.ToHalfAxis( transform.transformRot(HalfAxis.ToVector3D(cylPosition._axis)) ) ); }
public static HAxis Transform(HAxis axis, Transform3D transform) { return HalfAxis.ToHalfAxis(transform.transformRot(HalfAxis.ToVector3D(axis))); }
public static DimensionCube Transform(DimensionCube dimCube, Transform3D transform) { Vector3D pos = transform.transform(dimCube._position); Vector3D dim = transform.transformRot(new Vector3D(dimCube._dim) ); if (dim.X < 0) { pos.X += dim.X; dim.X = -dim.X; } if (dim.Y < 0) { pos.Y += dim.Y; dim.Y = -dim.Y; } if (dim.Z < 0) { pos.Z += dim.Z; dim.Z = -dim.Z; } return new DimensionCube(pos, dim.X, dim.Y, dim.Z, dimCube.Color, dimCube._above); }