Page 1 of 1
Assign texture to object
Posted: 29 Jan 2015, 17:06
by MikeD
Hi,
is it possible to assign a texture to an object inside the 3d viewer?
If so, what workflow or what functions/procedures would I need for that?
-Mike
Re: Assign texture to object
Posted: 02 Feb 2015, 17:24
by support
Hello Mike,
It is possible to assign a material to facegroups (TsgMeshObject.FaceGroups). A facegroup is usually a mesh that shares the same texture. Have a look at the code example below to fugure out how to get mesh objects from a specified entity (TsgDXFEntity):
Code: Select all
type
Tsg3DDrawingNavigatorAccess = class(Tsg3DDrawingNavigator);
...
function EntToMeshObjectList(A3DNavigator: Tsg3DDrawingNavigator; AEntity: TsgDXFEntity; var AMeshObjectsList: TList): Boolean;
var
I, C: Integer;
vNav3d: Tsg3DDrawingNavigatorAccess;
vMesh: TObject;
procedure AddMeshObjects(AInsert: TObject);
var
vMeshes: TList;
begin
vMeshes := vNav3d.GetInsertMeshes(AInsert);
try
AMeshObjectsList.Assign(vMeshes, laOr);
finally
vMeshes.Free;
end;
end;
begin
vNav3d := Tsg3DDrawingNavigatorAccess(A3DNavigator);
C := AMeshObjectsList.Count;
case AEntity.EntType of
ceInsert: AddMeshObjects(AEntity);
ce3DSolid, ceStep, ceBrep, ceIges:
begin
for I := 0 to AEntity.Count - 1 do
if AEntity.EntType = ceInsert then
AddMeshObjects(AEntity);
end;
else
vMesh := vNav3d.EntToGLObj(AEntity);
if vMesh <> nil then
AMeshObjectsList.Add(vMesh);
end;
Result := C <> AMeshObjectsList.Count;
end;
Mikhail
Re: Assign texture to object
Posted: 02 Feb 2015, 18:31
by MikeD
Thanks a lot Mikhail, I will look into that.
-Mike