• VEX —— Intrinsic attribute


    目录

    查看

    使用

    PackedGeometry


    Intrinsic attribute 内在属性是已经被计算的(从几何体派生出来的),可像属性一样访问;

    查看

    • ginfo -I,打印所有内在属性;
    • geometry spreadsheet,查看内在属性,默认不显示;
    • inspect tool,监视工具

    注,不同类型的几何体,显示的内在属性也不同;

    使用

    • 在Hscript内,属性名前需添加前缀 intrinsic:
    • 在VEX内,属性名前无需添加前缀;
    • 在Python内,可使用 hou.Geometry.intrinsicNames/.intrinsicValue()/.intrinsicValueDict() ;
    • 在组内,可使用如 @intrinsic:indexorder<100 ;
    1. //Hscript
    2. prim('.', 0, intrinsic:bounds, 1)
    1. //VEX,不可使用@attribute读取内在属性
    2. f[]@bounds = primintrinsic(0, 'bounds', 0);
    3. i@pointcount = detailintrinsic(0, 'pointcount');

    typeid、typename

    PackedGeometry

    • primintrinsic()、setprimintrinsic();
    • getpackedtransform()/setpackedtransform(),packedtransform();

    注,setpackedtransform与packedtransform,相差pivot

    1. //prim层级,以packed自身的pivot旋转和缩放
    2. matrix3 m = ident();
    3. rotate(m, ch('ang'), chv('axis'));
    4. scale(m, ch('scale'));
    5. setprimintrinsic(0, 'transform', @primnum, m);
    1. //prim层级,packed对象
    2. vector pivot = primintrinsic(0, 'pivot', @primnum);
    3. matrix m = ident();
    4. rotate(m, @Frame*0.1, normalize(sample_sphere_uniform(rand(@P))));
    5. translate(m, pivot);
    6. translate(m, normalize(pivot)*ch('dist'));
    7. setpackedtransform(0, @primnum, m);
    1. vector pivot = primintrinsic(0, 'pivot', @primnum);
    2. matrix m = ident();
    3. translate(m, -pivot);
    4. rotate(m, @Frame*0.1, normalize(sample_sphere_uniform(rand(@P))));
    5. translate(m, pivot);
    6. translate(m, normalize(pivot)*ch('dist'));
    7. packedtransform(0, @primnum, m);

     

  • 相关阅读:
    系统管理员道德规范
    Spring之Bean的实例化
    Python中创建类的六重境界
    fdisk 命令实现磁盘分区详细教程
    Elasticsearch 分片内部原理—近实时搜索、持久化变更
    tp6使用redis消息队列
    安装nvm,并使用nvm安装nodejs及配置环境变量
    JZC-32F005-HS3 功率继电器 引脚图 HF宏发
    分布式雪花算法
    Java设计模式面试题及答案(持续更新。。。)
  • 原文地址:https://blog.csdn.net/NapoleonCoder/article/details/134333176