Print at Dec 15, 2025, 5:00:42 PM View all posts in this thread on one page
Posted by jrmobile at Aug 14, 2021, 9:20:27 PM
How do i Change Texture in Plugin?
Hi.
I need some help on my plugin.
I need to change pieceoffurniture texture to specific one from catalog.
I've found one in catalog and setting it with setTexture, but it requires HomeTexture object type.
How do i set it?

private void placeFurniture(float[] XYZRot, CatalogPieceOfFurniture furniture, String modelName, float ModelHeight, String CurrentWall) {
HomePieceOfFurniture model = furnitureController.createHomePieceOfFurniture(furniture);


TexturesCatalog texturesCatalog = userPreferences.getTexturesCatalog();
java.util.List<TexturesCategory> texturesCategories = texturesCatalog.getCategories();

TexturesCategory garderobCategory = null;
for (TexturesCategory category : texturesCategories) {
if (category.getName().matches("ЛДСП")) {
garderobCategory = category;
}
}


java.util.List<CatalogTexture> garderobTextures = garderobCategory.getTextures();
for (CatalogTexture texture : garderobTextures) {
if (texture.getName().matches("Гардеробная ЛДСП 31"))
model.setTexture(texture);
}


Would appreciate help on this item.
Thanks in advance.

Posted by Puybaret at Aug 16, 2021, 5:25:35 PM
Re: How do i Change Texture in Plugin?
Look how HomeTexture is instantiated in TextureChoiceComponent class.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by jrmobile at Aug 16, 2021, 11:15:08 PM
Re: How do i Change Texture in Plugin?
Thank you.
Will try.

Posted by jrmobile at Aug 17, 2021, 2:59:35 PM
Re: How do i Change Texture in Plugin?
I've made it.
If anyone need, i just leave it here

TexturesCatalog texturesCatalog = userPreferences.getTexturesCatalog();
java.util.List<TexturesCategory> texturesCategories = texturesCatalog.getCategories();

TexturesCategory garderobCategory = null;
for (TexturesCategory category : texturesCategories) {
if (category.getName().matches("ЛДСП")) {
garderobCategory = category;
}
}


java.util.List<CatalogTexture> garderobTextures = garderobCategory.getTextures();
for (CatalogTexture catalogTexture : garderobTextures)
{
if (catalogTexture.getName().matches(ldspColor)) {
HomeTexture texture = new HomeTexture(catalogTexture);
model.setTexture(texture);
}
}