rfm2  22.0
A python-based rewrite of RenderMan for Maya
rfm2.vp.geo.projective_frustum.ProjectiveFrustum Class Reference
+ Inheritance diagram for rfm2.vp.geo.projective_frustum.ProjectiveFrustum:
+ Collaboration diagram for rfm2.vp.geo.projective_frustum.ProjectiveFrustum:

Public Member Functions

def __init__ (self, jsondict)
 
def num_lights (self)
 
def is_static (self)
 
def vtx_buffer_count (self)
 
def vtx_buffer (self)
 
def idx_buffer (self, idx_buffer, num_vtx, start_idx, inst_idx)
 
def opacity (self)
 
def instance_enabled (self, instance_idx)
 
def set_input_params (self, obj, **kwargs)
 
def set_connected_lights_data (self, this_obj)
 
def ordered_proj_vectors (self, light_idx)
 
- Public Member Functions inherited from rfm2.vp.geo.base.Vp2GeometryBase
def defaulted_value (self, name, default_val)
 
def instance_draw_method (self, instance_idx)
 
def instance_display_mode (self, instance_idx)
 
def instance_vp2_primitive (self, instance_idx)
 
def get_input_params (self)
 
def vtx_buffer (self, **kwargs)
 
def has_uvs (self)
 
def uv_buffer (self)
 
def color_buffer (self)
 

Static Public Member Functions

def validate (subdivs)
 

Public Attributes

 light_corners
 
 light_positions
 
 light_names
 
 transform_impacts_geometry
 
 can_draw_many_lights
 
 axis
 
 subdivisions
 
 mode
 
 directional
 
 shearX
 
 shearY
 
 apex
 
 useLightDirection
 
 width
 
 height
 
 radius
 
 edge
 
 scaleWidth
 
 scaleHeight
 
 left
 
 right
 
 top
 
 bottom
 
 depth
 
 leftEdge
 
 rightEdge
 
 topEdge
 
 bottomEdge
 
 base_shape
 
 shape_builder
 
- Public Attributes inherited from rfm2.vp.geo.base.Vp2GeometryBase
 id
 
 textured
 
 num_instances
 
 inst_display_mode
 
 inst_draw_method
 
 inst_index_buffer
 
 inst_vp_shader
 
 method
 
 kwargs
 
 is_deforming_when_transformed
 

Static Public Attributes

int nshapes = 4
 
int nedges = 4
 

Constructor & Destructor Documentation

◆ __init__()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.__init__ (   self,
  jsondict 
)

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

Member Function Documentation

◆ idx_buffer()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.idx_buffer (   self,
  idx_buffer,
  num_vtx,
  start_idx,
  inst_idx 
)
Fill the provided index buffer to draw the shape.

Args:
- idx_buffer (omr.MIndexBuffer): un-allocated storage for our result.
- num_vtx (int): The total number of vertices in the VBO.
- startIdx (int): the index of our first vtx in the VBO
- item_idx (int): 0 = outer frustum, 1 = inner frustum, 2 = frustum edges

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

+ Here is the call graph for this function:

◆ instance_enabled()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.instance_enabled (   self,
  instance_idx 
)
Return the enable state of the instance/MRenderItem, potentially taking
named params into account.

Check the position of the light in Z to decide if it should draw.

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

◆ is_static()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.is_static (   self)
Tells the vp code if the geometry is static or deforming, like a spot
light frustum for example

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

◆ num_lights()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.num_lights (   self)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ opacity()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.opacity (   self)
Returns the opacity for that shape.

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

+ Here is the caller graph for this function:

◆ ordered_proj_vectors()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.ordered_proj_vectors (   self,
  light_idx 
)
Generator to get the vectors from one corner of a light filter to
another corner of the light.
+ Here is the caller graph for this function:

◆ set_connected_lights_data()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.set_connected_lights_data (   self,
  this_obj 
)
Get data from connected lights to be able to draw the frustum.

- For each connected light
  - compute its matrix in filter-space
  - compute the position of the light's corners in filter-space and store
    them for later use.

Args:
- this_obj (om.MObject): The maya object
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_input_params()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.set_input_params (   self,
  obj,
**  kwargs 
)
Update internal input param values using kwargs.

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

+ Here is the call graph for this function:

◆ validate()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.validate (   subdivs)
static

◆ vtx_buffer()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.vtx_buffer (   self)
Return a list of vertices (list) in local space.

Use the vtx_list (the original light shape) to build the outer coneAngle
at the specified depth.
+ Here is the call graph for this function:

◆ vtx_buffer_count()

def rfm2.vp.geo.projective_frustum.ProjectiveFrustum.vtx_buffer_count (   self)
Return the number of vertices in this buffer.

Reimplemented from rfm2.vp.geo.base.Vp2GeometryBase.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ apex

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.apex

◆ axis

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.axis

◆ base_shape

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.base_shape

◆ bottom

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.bottom

◆ bottomEdge

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.bottomEdge

◆ can_draw_many_lights

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.can_draw_many_lights

◆ depth

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.depth

◆ directional

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.directional

◆ edge

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.edge

◆ height

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.height

◆ left

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.left

◆ leftEdge

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.leftEdge

◆ light_corners

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.light_corners

◆ light_names

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.light_names

◆ light_positions

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.light_positions

◆ mode

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.mode

◆ nedges

int rfm2.vp.geo.projective_frustum.ProjectiveFrustum.nedges = 4
static

◆ nshapes

int rfm2.vp.geo.projective_frustum.ProjectiveFrustum.nshapes = 4
static

◆ radius

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.radius

◆ right

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.right

◆ rightEdge

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.rightEdge

◆ scaleHeight

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.scaleHeight

◆ scaleWidth

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.scaleWidth

◆ shape_builder

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.shape_builder

◆ shearX

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.shearX

◆ shearY

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.shearY

◆ subdivisions

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.subdivisions

◆ top

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.top

◆ topEdge

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.topEdge

◆ transform_impacts_geometry

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.transform_impacts_geometry

◆ useLightDirection

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.useLightDirection

◆ width

rfm2.vp.geo.projective_frustum.ProjectiveFrustum.width

The documentation for this class was generated from the following file: