SolidPrimitive#

class ansys.stk.core.graphics.SolidPrimitive#

Bases: IPrimitive

Render filled solid objects and their outlines. Example solids include boxes and ellipsoids. Various effects are supported, such as displaying the solid’s silhouette, and hiding the outline of the backside of the solid…

Overview#

set_with_result

Define the solid using the specified solidTriangulatorResult. The solid is rendered in the primitive’s reference frame.

set

Define the solid using the specified parameters. The solid is rendered in the primitive’s reference frame.

affected_by_lighting

Get or set whether the primitive is affected by lighting.

display_fill

Get or set whether the solid’s fill is displayed.

display_silhouette

Get or set whether the solid’s silhouette is displayed.

silhouette_color

Get or set the silhouette’s color.

silhouette_translucency

Get or set the silhouette’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

silhouette_width

Get or set the silhouette’ width, in pixels.

minimum_silhouette_width_supported

Get the minimum silhouette width, in pixels, supported by the video card.

maximum_silhouette_width_supported

Get the maximum silhouette width, in pixels, supported by the video card.

display_outline

Get or set whether the solid’s outline is displayed.

outline_color

Get or set the outline’s color.

outline_translucency

Get or set the outline’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

outline_width

Get or set the outline’s width, in pixels.

outline_appearance

Get or set the outline’s appearance.

back_line_color

Get or set the back line’s color.

back_line_translucency

Get or set the back line’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

position

Get or set the solid’s position. The position is defined in the solid’s reference frame. The array contains the components of the position in the order x, y, z.

rotation

Get or set the rotation applied to the solid before rendering.

scale

Get or set a non-uniform scale that is applied to the solid to increase or decrease its rendered size. The array contains the scale for each component of the size in the order x scale, y scale, z scale.

back_line_width

Get or set the back line’s width, in pixels.

set_hint

Get the primitive’s set hint. See the Set Hint Performance Overview for selecting an appropriate value to construct the primitive with.

Examples#

Draw a Solid Cylinder Primitive and set properties

# Scenario scenario: Scenario object
manager = scenario.scene_manager
originCylinder = root.conversion_utility.new_position_on_earth()
originCylinder.assign_geodetic(0, 7, 100)

orientCylinder = root.conversion_utility.new_orientation()
orientCylinder.assign_az_el(0, 0, AzElAboutBoresight.ROTATE)

cylinder = manager.initializers.cylinder_triangulator.create_simple(200, 100)
solidCylinder = manager.initializers.solid_primitive.initialize()
solidCylinder.reference_frame = root.central_bodies.earth.analysis_workbench_components.systems.item("Fixed")
solidCylinder.position = originCylinder.query_cartesian_array()
solidCylinder.set_with_result(cylinder)
solidCylinder.color = Colors.Lime
solidCylinder.outline_color = Colors.Blue
solidCylinder.outline_width = 3
solidCylinder.translucency = 0.75
solidCylinder.rotation = orientCylinder
manager.primitives.add(solidCylinder)
manager.render()

Draw a Solid Ellipsoid Primitive and set properties

# Scenario scenario: Scenario object
manager = scenario.scene_manager
originEllipsoid = root.conversion_utility.new_position_on_earth()
originEllipsoid.assign_geodetic(0, 5, 100)

orientEllipsoid = root.conversion_utility.new_orientation()
orientEllipsoid.assign_az_el(0, 0, AzElAboutBoresight.ROTATE)

radii = [[200], [100], [100]]
ellipsoid = manager.initializers.ellipsoid_triangulator.compute_simple(radii)
solidEllipsoid = manager.initializers.solid_primitive.initialize()
solidEllipsoid.reference_frame = root.central_bodies.earth.analysis_workbench_components.systems.item(
    "Fixed"
)  # vgtSat.Systems.item('Body')
solidEllipsoid.position = originEllipsoid.query_cartesian_array()
solidEllipsoid.set_with_result(ellipsoid)
solidEllipsoid.color = Colors.White
solidEllipsoid.outline_color = Colors.DeepPink
solidEllipsoid.translucency = 0.75
solidEllipsoid.rotation = orientEllipsoid
manager.primitives.add(solidEllipsoid)
manager.render()

Draw a Solid Box Primitive and set properties

# Scenario scenario: Scenario object
manager = scenario.scene_manager
originBox = root.conversion_utility.new_position_on_earth()
originBox.assign_geodetic(0, 3, 100)

orientBox = root.conversion_utility.new_orientation()
orientBox.assign_az_el(0, 0, AzElAboutBoresight.ROTATE)

size = [[100], [100], [200]]
result = manager.initializers.box_triangulator.compute(size)
solidBox = manager.initializers.solid_primitive.initialize()
solidBox.reference_frame = root.central_bodies.earth.analysis_workbench_components.systems.item("Fixed")
solidBox.position = originBox.query_cartesian_array()
solidBox.set_with_result(result)
solidBox.color = Colors.Red
solidBox.outline_color = Colors.Cyan
solidBox.translucency = 0.75
solidBox.rotation = orientBox
manager.primitives.add(solidBox)
manager.render()

Import detail#

from ansys.stk.core.graphics import SolidPrimitive

Property detail#

property SolidPrimitive.affected_by_lighting: bool#

Get or set whether the primitive is affected by lighting.

property SolidPrimitive.display_fill: bool#

Get or set whether the solid’s fill is displayed.

property SolidPrimitive.display_silhouette: bool#

Get or set whether the solid’s silhouette is displayed.

property SolidPrimitive.silhouette_color: Color#

Get or set the silhouette’s color.

property SolidPrimitive.silhouette_translucency: float#

Get or set the silhouette’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

property SolidPrimitive.silhouette_width: float#

Get or set the silhouette’ width, in pixels.

property SolidPrimitive.minimum_silhouette_width_supported: float#

Get the minimum silhouette width, in pixels, supported by the video card.

property SolidPrimitive.maximum_silhouette_width_supported: float#

Get the maximum silhouette width, in pixels, supported by the video card.

property SolidPrimitive.display_outline: bool#

Get or set whether the solid’s outline is displayed.

property SolidPrimitive.outline_color: Color#

Get or set the outline’s color.

property SolidPrimitive.outline_translucency: float#

Get or set the outline’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

property SolidPrimitive.outline_width: float#

Get or set the outline’s width, in pixels.

property SolidPrimitive.outline_appearance: OutlineAppearance#

Get or set the outline’s appearance.

property SolidPrimitive.back_line_color: Color#

Get or set the back line’s color.

property SolidPrimitive.back_line_translucency: float#

Get or set the back line’s translucency. Translucency is between 0 and 1, where 0 is opaque and 1 is transparent.

property SolidPrimitive.position: list#

Get or set the solid’s position. The position is defined in the solid’s reference frame. The array contains the components of the position in the order x, y, z.

property SolidPrimitive.rotation: IOrientation#

Get or set the rotation applied to the solid before rendering.

property SolidPrimitive.scale: list#

Get or set a non-uniform scale that is applied to the solid to increase or decrease its rendered size. The array contains the scale for each component of the size in the order x scale, y scale, z scale.

property SolidPrimitive.back_line_width: float#

Get or set the back line’s width, in pixels.

property SolidPrimitive.set_hint: SetHint#

Get the primitive’s set hint. See the Set Hint Performance Overview for selecting an appropriate value to construct the primitive with.

Method detail#

SolidPrimitive.set_with_result(self, solid_triangulator_result: SolidTriangulatorResult) None#

Define the solid using the specified solidTriangulatorResult. The solid is rendered in the primitive’s reference frame.

Parameters:

solid_triangulator_result : SolidTriangulatorResult

Returns:

None

SolidPrimitive.set(self, positions: list, normals: list, indices: list, outline_indices: list, winding_order: WindingOrder, bounding_sphere: BoundingSphere, closed: bool) None#

Define the solid using the specified parameters. The solid is rendered in the primitive’s reference frame.

Parameters:

positions : list

normals : list

indices : list

outline_indices : list

winding_order : WindingOrder

bounding_sphere : BoundingSphere

closed : bool

Returns:

None