WIP: Brush assets project #106303
|
@ -36,13 +36,16 @@ void ED_spacetype_nla();
|
|||
void ED_spacetype_script();
|
||||
void ED_spacetype_text();
|
||||
void ED_spacetype_sequencer();
|
||||
void ED_spacetype_logic();
|
||||
void ED_spacetype_console();
|
||||
void ED_spacetype_userpref();
|
||||
void ED_spacetype_clip();
|
||||
void ED_spacetype_statusbar();
|
||||
void ED_spacetype_topbar();
|
||||
void ED_spacetype_spreadsheet();
|
||||
namespace blender::ed {
|
||||
namespace spreadsheet {
|
||||
void register_spacetype();
|
||||
}
|
||||
} // namespace blender::ed
|
||||
|
||||
/** \} */
|
||||
|
||||
|
|
|
@ -7,4 +7,8 @@
|
|||
struct ID;
|
||||
struct SpaceSpreadsheet;
|
||||
|
||||
ID *ED_spreadsheet_get_current_id(const SpaceSpreadsheet *sspreadsheet);
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
ID *get_current_id(const SpaceSpreadsheet *sspreadsheet);
|
||||
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ void ED_spacetypes_init()
|
|||
ED_spacetype_clip();
|
||||
ED_spacetype_statusbar();
|
||||
ED_spacetype_topbar();
|
||||
ED_spacetype_spreadsheet();
|
||||
spreadsheet::register_spacetype();
|
||||
|
||||
/* Register operator types for screen and all spaces. */
|
||||
ED_operatortypes_userpref();
|
||||
|
|
|
@ -48,8 +48,7 @@
|
|||
|
||||
#include <sstream>
|
||||
|
||||
using namespace blender;
|
||||
using namespace blender::ed::spreadsheet;
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
static SpaceLink *spreadsheet_create(const ScrArea * /*area*/, const Scene * /*scene*/)
|
||||
{
|
||||
|
@ -193,7 +192,7 @@ static void spreadsheet_main_region_init(wmWindowManager *wm, ARegion *region)
|
|||
}
|
||||
}
|
||||
|
||||
ID *ED_spreadsheet_get_current_id(const SpaceSpreadsheet *sspreadsheet)
|
||||
ID *get_current_id(const SpaceSpreadsheet *sspreadsheet)
|
||||
{
|
||||
if (BLI_listbase_is_empty(&sspreadsheet->viewer_path.path)) {
|
||||
return nullptr;
|
||||
|
@ -296,7 +295,7 @@ static void spreadsheet_update_context(const bContext *C)
|
|||
Object *spreadsheet_get_object_eval(const SpaceSpreadsheet *sspreadsheet,
|
||||
const Depsgraph *depsgraph)
|
||||
{
|
||||
ID *used_id = ED_spreadsheet_get_current_id(sspreadsheet);
|
||||
ID *used_id = get_current_id(sspreadsheet);
|
||||
if (used_id == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -717,7 +716,7 @@ static void spreadsheet_blend_write(BlendWriter *writer, SpaceLink *sl)
|
|||
BKE_viewer_path_blend_write(writer, &sspreadsheet->viewer_path);
|
||||
}
|
||||
|
||||
void ED_spacetype_spreadsheet()
|
||||
void register_spacetype()
|
||||
{
|
||||
SpaceType *st = MEM_cnew<SpaceType>("spacetype spreadsheet");
|
||||
ARegionType *art;
|
||||
|
@ -801,8 +800,10 @@ void ED_spacetype_spreadsheet()
|
|||
art->init = ED_region_panels_init;
|
||||
art->draw = spreadsheet_dataset_region_draw;
|
||||
art->listener = spreadsheet_dataset_region_listener;
|
||||
blender::ed::spreadsheet::spreadsheet_data_set_region_panels_register(*art);
|
||||
spreadsheet_data_set_region_panels_register(*art);
|
||||
BLI_addhead(&st->regiontypes, art);
|
||||
|
||||
BKE_spacetype_register(st);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::spreadsheet
|
||||
|
|
|
@ -487,14 +487,14 @@ std::unique_ptr<ColumnValues> VolumeDataSource::get_column_values(
|
|||
if (STREQ(column_id.name, "Grid Name")) {
|
||||
return std::make_unique<ColumnValues>(
|
||||
IFACE_("Grid Name"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
|
||||
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
return volume_grid->name();
|
||||
}));
|
||||
}
|
||||
if (STREQ(column_id.name, "Data Type")) {
|
||||
return std::make_unique<ColumnValues>(
|
||||
IFACE_("Data Type"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
|
||||
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
const VolumeGridType type = volume_grid->grid_type();
|
||||
const char *name = nullptr;
|
||||
RNA_enum_name_from_value(rna_enum_volume_grid_data_type_items, type, &name);
|
||||
|
@ -504,7 +504,7 @@ std::unique_ptr<ColumnValues> VolumeDataSource::get_column_values(
|
|||
if (STREQ(column_id.name, "Class")) {
|
||||
return std::make_unique<ColumnValues>(
|
||||
IFACE_("Class"), VArray<std::string>::ForFunc(size, [volume](int64_t index) {
|
||||
const blender::bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
const bke::VolumeGridData *volume_grid = BKE_volume_grid_get(volume, index);
|
||||
openvdb::GridClass grid_class = volume_grid->grid_class();
|
||||
if (grid_class == openvdb::GridClass::GRID_FOG_VOLUME) {
|
||||
return IFACE_("Fog Volume");
|
||||
|
|
|
@ -7,13 +7,18 @@
|
|||
#include "BKE_geometry_set.hh"
|
||||
#include "spreadsheet_cache.hh"
|
||||
|
||||
struct ARegionType;
|
||||
struct bContext;
|
||||
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
struct SpaceSpreadsheet_Runtime {
|
||||
public:
|
||||
int visible_rows = 0;
|
||||
int tot_rows = 0;
|
||||
int tot_columns = 0;
|
||||
|
||||
blender::ed::spreadsheet::SpreadsheetCache cache;
|
||||
SpreadsheetCache cache;
|
||||
|
||||
SpaceSpreadsheet_Runtime() = default;
|
||||
|
||||
|
@ -24,15 +29,10 @@ struct SpaceSpreadsheet_Runtime {
|
|||
}
|
||||
};
|
||||
|
||||
struct ARegionType;
|
||||
struct bContext;
|
||||
|
||||
void spreadsheet_operatortypes();
|
||||
void spreadsheet_update_context_path(const bContext *C);
|
||||
Object *spreadsheet_get_object_eval(const SpaceSpreadsheet *sspreadsheet,
|
||||
const Depsgraph *depsgraph);
|
||||
|
||||
namespace blender::ed::spreadsheet {
|
||||
bke::GeometrySet spreadsheet_get_display_geometry_set(const SpaceSpreadsheet *sspreadsheet,
|
||||
Object *object_eval);
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#include "spreadsheet_intern.hh"
|
||||
#include "spreadsheet_row_filter.hh"
|
||||
|
||||
using namespace blender::ed::spreadsheet;
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
static int row_filter_add_exec(bContext *C, wmOperator * /*op*/)
|
||||
{
|
||||
|
@ -82,9 +82,7 @@ static void SPREADSHEET_OT_remove_row_filter_rule(wmOperatorType *ot)
|
|||
|
||||
static int select_component_domain_invoke(bContext *C, wmOperator *op, const wmEvent * /*event*/)
|
||||
{
|
||||
using namespace blender;
|
||||
const auto component_type = blender::bke::GeometryComponent::Type(
|
||||
RNA_int_get(op->ptr, "component_type"));
|
||||
const auto component_type = bke::GeometryComponent::Type(RNA_int_get(op->ptr, "component_type"));
|
||||
bke::AttrDomain domain = bke::AttrDomain(RNA_int_get(op->ptr, "attribute_domain_type"));
|
||||
|
||||
SpaceSpreadsheet *sspreadsheet = CTX_wm_space_spreadsheet(C);
|
||||
|
@ -126,3 +124,5 @@ void spreadsheet_operatortypes()
|
|||
WM_operatortype_append(SPREADSHEET_OT_remove_row_filter_rule);
|
||||
WM_operatortype_append(SPREADSHEET_OT_change_spreadsheet_data_source);
|
||||
}
|
||||
|
||||
} // namespace blender::ed::spreadsheet
|
||||
|
|
|
@ -31,8 +31,7 @@
|
|||
|
||||
#include <sstream>
|
||||
|
||||
using namespace blender;
|
||||
using namespace blender::ed::spreadsheet;
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
static void filter_panel_id_fn(void * /*row_filter_v*/, char *r_name)
|
||||
{
|
||||
|
@ -367,3 +366,5 @@ void register_row_filter_panels(ARegionType ®ion_type)
|
|||
BLI_addtail(®ion_type.paneltypes, panel_type);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace blender::ed::spreadsheet
|
||||
|
|
|
@ -6,4 +6,8 @@
|
|||
|
||||
struct ARegionType;
|
||||
|
||||
namespace blender::ed::spreadsheet {
|
||||
|
||||
void register_row_filter_panels(ARegionType ®ion_type);
|
||||
|
||||
}
|
||||
|
|
|
@ -76,19 +76,22 @@ namespace blender::ed::text {
|
|||
struct SpaceText_Runtime;
|
||||
} // namespace blender::ed::text
|
||||
using SpaceText_Runtime = blender::ed::text::SpaceText_Runtime;
|
||||
|
||||
namespace blender::ed::spreadsheet {
|
||||
struct SpaceSpreadsheet_Runtime;
|
||||
} // namespace blender::ed::spreadsheet
|
||||
using SpaceSpreadsheet_Runtime = blender::ed::spreadsheet::SpaceSpreadsheet_Runtime;
|
||||
#else
|
||||
typedef struct SpaceNode_Runtime SpaceNode_Runtime;
|
||||
typedef struct SpaceOutliner_Runtime SpaceOutliner_Runtime;
|
||||
typedef struct SpaceSeq_Runtime SpaceSeq_Runtime;
|
||||
typedef struct SpaceText_Runtime SpaceText_Runtime;
|
||||
typedef struct SpaceSpreadsheet_Runtime SpaceSpreadsheet_Runtime;
|
||||
#endif
|
||||
|
||||
/** Defined in `file_intern.hh`. */
|
||||
typedef struct SpaceFile_Runtime SpaceFile_Runtime;
|
||||
|
||||
/** Defined in `spreadsheet_intern.hh`. */
|
||||
typedef struct SpaceSpreadsheet_Runtime SpaceSpreadsheet_Runtime;
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
/** \name SpaceLink (Base)
|
||||
* \{ */
|
||||
|
|
|
@ -3297,7 +3297,7 @@ const EnumPropertyItem *rna_SpaceSpreadsheet_attribute_domain_itemf(bContext * /
|
|||
SpaceSpreadsheet *sspreadsheet = (SpaceSpreadsheet *)ptr->data;
|
||||
auto component_type = bke::GeometryComponent::Type(sspreadsheet->geometry_component_type);
|
||||
if (sspreadsheet->object_eval_state == SPREADSHEET_OBJECT_EVAL_STATE_ORIGINAL) {
|
||||
ID *used_id = ED_spreadsheet_get_current_id(sspreadsheet);
|
||||
ID *used_id = ed::spreadsheet::get_current_id(sspreadsheet);
|
||||
if (used_id != nullptr) {
|
||||
if (GS(used_id->name) == ID_OB) {
|
||||
Object *used_object = (Object *)used_id;
|
||||
|
|
Loading…
Reference in New Issue