mirror of
https://github.com/ryantimpe/brickr.git
synced 2026-01-05 21:29:33 -06:00
User-specified 3D brick resolution. Defaults to 15px per side (default from before). 30 looks good.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
Package: brickr
|
||||
Title: Create Simulated LEGO Models from Images or Data Frames
|
||||
Version: 0.0.0.9200
|
||||
Version: 0.0.0.9302
|
||||
Authors@R:
|
||||
person(given = "Ryan",
|
||||
family = "Timpe",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#' @return A list with elements \code{threed_elevation} and \code{threed_hillshade} to created 3D mosiacs with the \code{rayshader} package.
|
||||
#' @export
|
||||
#'
|
||||
layer_from_bricks <- function(brick_list, lev=1){
|
||||
layer_from_bricks <- function(brick_list, lev=1, brick_size = 15){
|
||||
#Get previous data
|
||||
in_list <- brick_list
|
||||
|
||||
@@ -19,7 +19,7 @@ layer_from_bricks <- function(brick_list, lev=1){
|
||||
up_el = (lev-1)*3
|
||||
|
||||
#Number of 'pixels' on a side of a single-stud brick. I think this should be fixed for now
|
||||
ex_size <- 15
|
||||
ex_size <- brick_size
|
||||
|
||||
lego_expand <- img_lego %>%
|
||||
dplyr::select(Level, x, y, Lego_name, Lego_color) %>%
|
||||
@@ -112,7 +112,7 @@ layer_from_bricks <- function(brick_list, lev=1){
|
||||
#' @return 3D brick model rendered in the 'rgl' package.
|
||||
#' @export
|
||||
#'
|
||||
display_bricks <- function(brick_list, view_levels = NULL,
|
||||
display_bricks <- function(brick_list, view_levels = NULL, brick_size = 15,
|
||||
solidcolor = "#a3a2a4", ...){
|
||||
#Requires Rayshader
|
||||
if (!requireNamespace("rayshader", quietly = TRUE)) {
|
||||
@@ -131,10 +131,10 @@ display_bricks <- function(brick_list, view_levels = NULL,
|
||||
}
|
||||
|
||||
for(ii in view_levels){
|
||||
brick_layer <- brick_list %>% layer_from_bricks(ii)
|
||||
brick_layer <- brick_list %>% layer_from_bricks(ii, brick_size = brick_size)
|
||||
|
||||
brick_layer$`threed_hillshade`%>%
|
||||
rayshader::plot_3d(brick_layer$`threed_elevation`, zscale=0.167, solid = FALSE,
|
||||
rayshader::plot_3d(brick_layer$`threed_elevation`, zscale=0.167*(15/brick_size), solid = FALSE,
|
||||
solidcolor=solidcolor, shadow = FALSE, ...)
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@ GeomBrickKnob
|
||||
|
||||
resizingTextGrob(...)
|
||||
|
||||
\method{drawDetails}{resizingTextGrob}(x, recording = TRUE)
|
||||
drawDetails.resizingTextGrob(x, recording = TRUE)
|
||||
|
||||
\method{preDrawDetails}{resizingTextGrob}(x)
|
||||
preDrawDetails.resizingTextGrob(x)
|
||||
|
||||
GeomBrickKnobText
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
\alias{display_bricks}
|
||||
\title{Build 3D brick model with rayshader.}
|
||||
\usage{
|
||||
display_bricks(brick_list, view_levels = NULL, solidcolor = "#a3a2a4",
|
||||
...)
|
||||
display_bricks(brick_list, view_levels = NULL, brick_size = 15,
|
||||
solidcolor = "#a3a2a4", ...)
|
||||
}
|
||||
\arguments{
|
||||
\item{brick_list}{List output from collect_bricks(). Contains an element \code{Img_lego}.}
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
\usage{
|
||||
geom_brick_point(mapping = NULL, data = NULL, stat = "identity",
|
||||
position = "identity", ..., label = "LEGO",
|
||||
simplified_threshold = 24 * 24, linejoin = "mitre", na.rm = FALSE,
|
||||
show.legend = NA, inherit.aes = TRUE)
|
||||
simplified_threshold = 24, size = 1, stud_scale = 6/5,
|
||||
linejoin = "mitre", na.rm = FALSE, show.legend = NA,
|
||||
inherit.aes = TRUE)
|
||||
}
|
||||
\arguments{
|
||||
\item{mapping}{Set of aesthetic mappings created by \code{\link[=aes]{aes()}} or
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
\alias{layer_from_bricks}
|
||||
\title{Helper function to convert a level from a 3D model into a rayshader-friendly object.}
|
||||
\usage{
|
||||
layer_from_bricks(brick_list, lev = 1)
|
||||
layer_from_bricks(brick_list, lev = 1, brick_size = 15)
|
||||
}
|
||||
\arguments{
|
||||
\item{brick_list}{List output from table_to_bricks(). Contains an element \code{Img_lego}.}
|
||||
|
||||
Reference in New Issue
Block a user