save_piece_obj
, piece3d
and piece
now have support for 3D rotations of pieces (#188) using an axis-angle representation parameterized by arguments angle
, axis_x
, and axis_y
.AA_to_R
and R_to_AA
convert back and forth between the axis-angle representation used by piecepackr
and 3D rotation matrices (post-multiplied).R_x
, R_y
, and R_z
create simple 3D rotation matrices (post-multiplied) for rotations around the x, y, and z axes.to_degrees
and to_radians
convert back and forth between degrees and radians.pp_cfg
now supports new obj_fn
, rayrender_fn
, and rgl_fn
styles allowing further piece customization within the 3D graphics functions save_piece_obj
, piece
, and piece3d
respectively (#200).piece3d
now supports user manually setting the piece’s rgl
“material” textype
argument. When textures with alpha transparency are not needed then setting textype
to "rgb"
avoids a rglWebGL rendering bug (#187).get_shape_grob_fn
now has a back
argument to indicate we are drawing the back of the shape and should reflect it across a vertical axis (#218).board_face
, board_back
for representing boards (#153).card_face
, card_back
for representing cards (#124).bit_face
, bit_back
for representing miscellaneous game pieces (#155).game_systems
now returns more game systems:
dice
: Normal six-sided pipped dice in six color schemes (#166).checkers1
, checkers2
: Checkered boards and checkers. checkers1
has 1" cells and checkers2
has 2" cells (#168).dominoes
, dominoes_black
, dominoes_blue
, dominoes_green
, dominoes_red
, dominoes_white
, dominoes_yellow
: Traditional Double-12 pipped dominoes in various color schemes (#159).playing_cards
, playing_cards_colored
, playing_cards_tarot
(#170):
playing cards
is a traditional (French-suited) deck of (Poker) playing cards.playing_cards_colored
has five suits: red hearts, black spades, green clubs, blue diamonds, and yellow stars.playing_cards_tarot
is a (French Bourgeois) tarot deck with four suits (hearts, spades, clubs, diamonds) with 14 ranks (including knights) plus 22 trump cards (1-21 plus an “excuse”).save_piece_obj
for writing Waveform OBJ files (and associated MTL files and png textures) (#189, #190). Note support for dice and pawns are currently rather crude.piece3d
for making graphics with the rgl
package (#76).piece
for making rayrender
objects.op_transform
when sorting tile faces rotated in various directions (#163).op_transform
now accepts new argument pt_thickness
for improved handling of stacked pyramid (tops).edge_color
for dice, pawns, and pyramids now defaults to the background color of piece_side
.edge_color
for matchsticks now defaults to the background color of the matchstick_back
.game_systems
made more “standard”.pmap_piece
now supports an .f
function to specify the function to apply to the rows of the data frame. By default it uses the (backwards-compatible) pieceGrob
.pp_cfg()$get_depth()
now has better depth calculation for pyramid faces (representing laid down pyramids).pp_cfg
now supports a new op_grob_fn
style indicating which function to draw pieces with when drawing with a 3D oblique projection in grid
. The older shadow_fn
style alternative is now deprecated.grid.piece
(and pieceGrob
) now support a scale
and alpha
argument (#201).The following pp_cfg
R6 class public method is now deprecated: * get_pictureGrob
. Use get_grob(piece_type, suit, rank, type="picture")
instead. The following pp_cfg
“style” is now deprecated: * shadow_fn
. Use the new op_grob_fn
instead.
game_systems
no longer returns an icehouse_pieces
configuration. Configurations for Looney Pyramids can be found at https://github.com/piecepackr/piecenikrNew function picturePieceGrobFn
which returns a “grob” function that imports graphics from files found in its directory
argument (#152).
New function game_systems
which returns a list of configuration objects for multiple game systems (#157):
dual_piecepacks_expansion
: A companion piecepack with a special suit scheme. See https://trevorldavis.com/piecepackr/dual-piecepacks-pnp.html.
hexpack
: A hexagonal extrapolation of the piecepack designed by Nathan Morse and Daniel Wilcox. See https://boardgamegeek.com/boardgameexpansion/35424/hexpack.
piecepack
: A public domain game system invented by James “Kyle” Droscha. See http://www.ludism.org/ppwiki. Configuration also contains the following piecepack accessories:
piecepack matchstick
s: A public domain accessory developed by Dan Burkey. See http://www.ludism.org/ppwiki/PiecepackMatchsticks.piecepack pyramids
: A public domain accessory developed by Tim Schutz. See http://www.ludism.org/ppwiki/PiecepackPyramids.piecepack saucers
: A public domain accessory developed by Karol M. Boyle at Mesomorph Games. See https://web.archive.org/web/20190719155827/http://www.piecepack.org/Accessories.htmlplaying_cards_expansion
: A piecepack with the standard “French” playing card suits. See http://www.ludism.org/ppwiki/PlayingCardsExpansion.
subpack
: A “mini” piecepack. Designed to be used with the piecepack
to make piecepack “stackpack” diagrams. See http://www.ludism.org/ppwiki/StackPack.
Helper functions to_subpack
and to_hexpack
which given a piecepack configuration attempts to generate an appropriate matching (piecepack stackpack) subpack and hexpack (#161).
New function file2grob
that imports a given image file as a grob.
op_transform
for whether two pieces overlap are now more accurate (#150).op_transform
when computing bounding box for shapes when width and height are not equal.op_transform
for inferring width/height of matchsticks and shape/depth of pyramids.pp_cfg
objects when a custom grob function had been set.suit_color.s2="white"
pp_cfg
objects’ get_suit_color
function is now vectorized (and by default now returns the suit colors for each suit).op_transform
and new pmap_piece
argument trans
to facilitate making graphics with an oblique projection (#138).save_print_and_play
function now supports adding piecepack pyramids (#37), matchsticks (#69), and subpacks (aka “travel” piecepacks) (#129) to the print-and-play layout.pp_cfg
function (and R6 class) which on-the-fly builds a cache to speed up component drawing (#112, #122). Can also signal to rule diagram functions whether the piecepack lacks certain components (#130).help("pp_utils")
, help("grob_fn_helpers")
, and help("grid.piece")
for more info.component_opt
color names are now _color
instead of _col
to better match “configuration lists”.draw_component
has been renamed grid.piece
(and many of its arguments vectorized) and draw_components
has been renamed pmap_piece
(#123).make_images
has been renamed save_piece_images
and make_pnp
has been renamed save_print_and_play
.component_side
, i_r
, and i_s
have been renamed piece_side
, rank
, and suit
.make_collection
and make_preview
functions removed.load_configurations
and read_configuration
functions removed.make_pnp
print-and-play layouts have been radically re-configured and renamed to save_print_and_play
(#54).chip
component no longer supported by piecepackr (#114)make_pnp
now gets deck title from the configuration element title
(#118)ribbons
are now mat
(as in picture frame ‘matting’) (#117)draw_preview
function has been removed. Can now do grid.piece("preview_layout", cfg=cfg)
.get_embedded_font
function fixed.make_pnp
function now supports the A5 page size and is more A4 page size friendly (#54).fontface
(#121) as well as width
, height
, and depth
(#106) in configuration lists.pmap_piece
now supports angle=NA
and grid.piece
no longer draws different output for components like tile_back
if you specify a suit or rank (#120).credit
, copyright
, and description
fieldscoin_arrangement
(#136).ghostscript
installed will automatically embed metadata in the print-and-play pdf (#93).border_lex
and gridline_lex
to allow customizing the width of the border and grid lines.save_piece_images
’s format
argument is now vectorized.save_print_and_play
can now save a print-and-play “svg” and “ps” file (besides “pdf”).grid.piece
no longer throws a warning when use_pictureGrob==TRUE
and angle!=0
(#148).pyramid_face
, pyramid_left
, pyramid_left
, pyramid_right
, pyramid_top
, and pyramid_layout
components (progress on #37).matchstick_face
and matchstick_back
components (progress on #69)pawn_layout
, die_layoutLF
, die_layoutRF
, suitdie_layoutLF
, suitdie_layoutRF`',
suitrankdie_layoutLF, and
suitrankdie_layoutRF`` components (#101)Generalized star shape to concave#
and #
shape to convex#
shape (#100). Added “pyramid” triangle shape (progress on #37).
New draw_components
function allows one to draw several piecepack components specified in a data frame (#96).
New load_configurations
function allows one to load in several JSON configuration files and/or internal piecepackr configurations in a layered (cascading) manner (#81).
Made several non-reverse-compatible API changes to configuration and piecepack image making functions and scripts.
Increased the width of a pawn belt from 1.5" to 2" (so can fit around a 5/8" diameter pawn).
Changed the “light”-french-suited symbols in the “dual” demo from “black” symbols to “white” symbols. Thanks Ron-Hale Evans for the suggestion.
Changed default color scheme
Added get_embedded_font
function and executable (#80).
Dropped pdfjoin
from list of system dependencies (#77).
Added ability to configure by individual suits and/or ranks (#44).
Added Yellow Crowns demo (#53)
Added make_piecepack_images
executable (#48). Renamed other executables and functions in API.
Shrunk the pawn down to ½" by ⅞" and made them directional by default (#50).
Exported component drawing function draw_component
(#3, #58).
Allow styles by general component (#57) and open up primary symbol theta and r (#51).
Document exported functions in Rd pages.
Option to configure piecepack dice arrangement (#13)
Expanded Rainbow Deck demo (#64).
Fixed bugs in “orthodox” pawns (#62).
Added --border_color
configuration option and fix bug in PnP border colors (#42).
Added --header_font
, --dm_r
, --dm_r.*
, and --suit_colors.*
options.
Added (or improved) --checker_colors
, --gridline_colors
, and --hexline_colors
options.
Renamed --background_color
option to --background_colors
which can now vary by suit (#52)
Added --shape
, --shape_theta
, --shape.*
, and --shape_theta.*
options.
Add new and rename existing pdf metadata options in exec/collect_piecepacks
.
Improved “preview” layout.
Added additional suit die to accessories pages.
Fix bug in the “suit-rank” die for 5-suited piecepacks (#41).
Added Crown and Anchor suited piecepacks demo (#46).
Added Rainbow Deck suited piecepack demo (#47).
Added Reversi-friendly piecepack demo (#21).
Added Chess-ranked piecepack demo (#24).
Added Hex-friendly piecepack demo.
Fix bugs in “orthodox” demo (#43).
Tweaked configuration in “dual” demo so first two decks are more compatible with other decks.
Tweaked fonts in all demos.
Added Simplified Hanzi decks to Chinese zodiac demo.
Tweaked “chip” shape in orthodox and Chineze zodiac demos.
Tweaked background colors in 3rd hex demo.
Tweaked background colors in 3rd crown-and-anchor demo.