From: "MRS LOI C. ESTRADA http://www.iro.bsp.gov.ph/whoswhoprint.asp?ID=30 Dear Sir My name is LOI C. ESTRADA,The wife of Mr. JOSEPH ESTRADA, the former President of Philippines located in the South East Asia. My husband was recently impeached from office by a backed uprising of mass demonstrators and the Senate. My husband is presently in jail and facing trial on charges of corruption, embezzlement, and the mysterious charge of plunder which might lead to death sentence. The present government is forcing my husband out of manila to avoid demonstration by his supporter. During my husband's regime as president of Philippine, I realized some reasonable amount of money from various deals that I successfully executed. I have plans to invest this money for my children's future on real estate and industrial production. My husband is not aware of this because I wish to do it secretly for now. before my husband was impeached, I secretly siphoned the sum of $30,000,000 million USD (Thirty million United states dollars) out of Philippines and deposited the money with a security firm that transports valuable goods and consignments through diplomatic means. I also declared that the consignment was solid gold and my foreign business partner owned it. I am contacting you because I want you to go to the security company and claim the money on my behalf since I have declared that the consignment belong to my foreign business partner. You shall also be required to assist me in investment in your country. I hope to trust you as a God fearing person who will not sit on this money when you claim it, rather assist me properly, I expect you to declare what percentage of the total money you will take for your assistance. When I receive your positive response I will let you know where the security company is and the payment pin code to claim the money which is very important. For now, all our communication is by e-mail because my line are right now connected to the Philippines Telecommunication Network services. Please also send me your telephone and fax number. I will ask my son to contact you to give you more details , after i have received a responce from you. Thank you and God bless you and family. MRS LOI C. ESTRADA


A Java library providing a lightweight solution (~14 kB jar) for integrating R analytics executed on the OpenCPU server into any application running on the JVM. This library is ideally suited for integrating R analytics into new or existing server, middleware and cluster computing solutions.
The OpenCPU server provides an execution environment for scientific computing, reproducible research and data analysis based on R. To learn more about the OpenCPU server, see here. To learn more about the general capabilities of the R programming language and environment for statistical computing, see here.
This library provides the following OpenCPU integration support:
When working with this library the basic usage pattern is as follows:
OCPUTask rTask = OCPU.R().pkg(pName).function(fName).input(fInput).library(); OCPUResult rResult = rTask.execute(); Map rOutput = rResult.output();
For example, the following code snippet demonstrates the execution of the R stats::rnorm function:
Map data = new HashMap(); data.put("n", 10); data.put("mean", 5); OCPUTask rTask = OCPU.R().pkg("stats").function("rnorm").input(data).library(); OCPUResult rResult = rTask.execute(); Map rOutput = rResult.output();
The following code snippet demonstrates the execution of the R dpu.mobility::geodistance function by openmhealth on github:
Map data = new HashMap(); data.put("long", Arrays.asList(-74.0064,-118.2430,-74.0064)); data.put("lat", Arrays.asList(40.7142,34.0522,40.7142)); OCPUTask rTask = OCPU.R() .user("openmhealth") .pkg("dpu.mobility") .function("geodistance") .input(data) .github(); OCPUResult rResult = rTask.execute(); Map rOutput = rResult.output();


Status: MINUMUM proposal accepted 4/1/92Issue: EXTERNAL-FORMAT-FOR-EVERY-FILE-CONNECTION
Forum: Cleanup
References: OPEN, WITH-OPEN-FILE, LOAD, COMPILE-FILE, STREAM-EXTERNAL-FORMAT
Category: EXTEND
Edit history: 10-Jan-92, Version 1 by Masa Ida
14-Jan-92, Version 2 ibid.
(correct a typo. add Editorial Impact field. Add Discussion.)
1-Apr-92, Version 3 by Barrett
(compile-file-pathname, similarity of constants constraint)
2-Apr-92, Version 4 by Barrett (amendments from meeting)
Problem Description:
OPEN and WITH-OPEN-FILE have :EXTERNAL-FORMAT keyword
to specify the external format of files, but other file
connecting interfaces like LOAD have no such keyword.
As a result uniform handling of external formats are
impossible with the current draft.
Proposal (EXTERNAL-FORMAT-FOR-EVERY-FILE-CONNECTION:MINIMUM);
Add the :EXTERNAL-FORMAT keyword to LOAD and COMPILE-FILE.
The default value is :DEFAULT as in OPEN. This argument specifies the
character representation scheme to be used by LOAD and COMPILE-FILE
when reading a source file, in the same manner as for OPEN.
This changes the syntax descriptions to
Compile-file input-pathname &key :output-file :verbose
:print :external-format
Load filename &key :verbose :print :if-does-not-exist
:external-format
Add to the descriptions of COMPILE-FILE and LOAD a cross reference to
(or copy of) the description of the :EXTERNAL-FORMAT argument for OPEN.
The :EXTERNAL-FORMAT argument is ignored by LOAD when opening a
compiled file. Instead, COMPILE-FILE and LOAD must cooperate (using
some implementation-dependent mechanism) in such a way that similarity
of constants is maintained across the interface between these two
functions.
Editorial Impact:
Trivial. If STREAM-EXTERNAL-FORMAT description will refer
the usage of :EXTERNAL-FORMAT in the future, editorial consideration
will be needed.
Test Case:
(LOAD "MY-PROG.LISP" :EXTERNAL-FORMAT :NIHONGO-EUC)
will load the file MY-PROG.LISP which contains nihongo-euc
coded characters defined by UI-OSF joint japanization definition.
(COMPILE-FILE "YY.CL")
will compile the file YY.CL with the default understanding.
Rationale:
Uniform handling of external formats are enabled by
adopting this proposal.
Current Practice:
There is no way to specify the coding scheme for
loading/compiling files.
Several Japanese commercial CL implementations use
this scheme.
Cost to Implementors:
If implementation supports :default only, the cost is negligible.
Cost to Users:
The existing japanized software with their own tricks for
converting the codes must rewrite the interface to the
system supplied one to have a portability.
Cost of Non-Adoption:
Incompatibility with the Jeida Guideline draft.
Benefits:
Performance up.
Compatible definition.
Aesthetics:
unified syntax.
Proposal (EXTERNAL-FORMAT-FOR-EVERY-FILE-CONNECTION:JEIDA-GUIDELINE);
Only :DEFAULT is defined for the value of :EXTERNAL-FORMAT now.
Other possible selections are not defined.
Add the following selections for :external-format value.
:nihongo-jis file contains JIS X0202 encoding JIS characters.
:nihongo-euc file contains nihongo-euc defined by
the joint convention defined by UI-OSF.
:nihongo-ms file contains Microsoft Kanji Code.
Editorial Impact:
Trivial. If STREAM-EXTERNAL-FORMAT description will refer
the usage of :EXTERNAL-FORMAT in the future, editorial consideration
will be needed.
Test Case:
See the Test Case for MINIMUM
Rationale:
Every practical conversion scheme is provided with this definition.
Current Practice:
Users write their own codes for conversion. Or
Several CL cannot handle japanese characters.
Cost to Implementors:
Requiers the supporting mechanisms/libraries for japanese
character handling.
Cost to Users:
Cost of Non-Adoption:
Incompatibility with the Jeida Guideline draft.
Benefits:
By adopting this proposal, implementations can have a portable
way for japanization.
Aesthetics:
If there is consideration for other nations,
say, we can add :arabic-XXX, :chinese-XXX, ...
Discussion:
Masa Ida recomended to have the MINIMUM proposal.
The proposal JEIDA-GUIDELINE seems to be too sudden for X3J13
and may require more detailed definition.
The proposal JEIDA-GUIDELINE seems to be not needed for USA domestic
Applications.
Date: Mon, 13 Jan 92 11:16:40 EST
From<EMAIL_ADDRESS>(Kim Barrett)
I don't yet have an informed opinion on the proposal (after the above
bug is fixed), but my initial reaction is that this certainly seems
plausible. I couldn't think of any operators besides the two mentioned
that implicitly call OPEN.
Date: Mon, 13 Jan 1992 16:37-0500
From: Kent M Pitman<EMAIL_ADDRESS>I do believe this is an important issue. I think it's nice for us to
try to cater to the legitimate technical needs of the international
community in order to better position CL for acceptance in the
international arena, both in the standards arena and in the commercial
arena. I hope that at the appropriate time we will give it due
consideration.
My personal opinion is that the proposal looks solid (modulo the
obvious typo--missing "not"--mentioned by Kim Barrett) and worth doing,
both for general consistency and because I can easily see where the
absence of this feature would lead to some serious problems.
From: Larry Masinter<EMAIL_ADDRESS>Date: Mon, 13 Jan 1992 15:49:14 PST
I like the :MINIMUM proposal, but I would be wary of including the
JEIDA guideline without also including other values for
:EXTERNAL-FORMAT.
There is apprently good progress in the ISO 10646 standard. (The DIS-2
ISO 10646 was supposed to be issued January 1992 for a 4-month
vote...)
Even if we listed interpretations for :external-format that included
JIS, EUC and Microsoft Kanji codes, it would seem to be important to
include a better reference for those coding schemes, since they tend
to get revised from time to time.
It might be that the standard should not include these keywords any
more than a listing of features, but that some other informal or
formal consortium of implementors could keep a registry of keyword
assignments.


|
It is hereby certified that the Will dated {{case_details.case_data.willDateFormatted}}
of {{case_details.case_data.deceasedForenames}} {{case_details.case_data.deceasedSurname}}
of {% if case_details.case_data.deceasedAddress.AddressLine1 != null and case_details.case_data.deceasedAddress.AddressLine1 != "" %}{{ case_details.case_data.deceasedAddress.AddressLine1}}{% endif %}
{% if case_details.case_data.deceasedAddress.AddressLine2 != null and case_details.case_data.deceasedAddress.AddressLine2 != "" %} {{case_details.case_data.deceasedAddress.AddressLine2}}{% endif %}
{% if case_details.case_data.deceasedAddress.AddressLine3 != null and case_details.case_data.deceasedAddress.AddressLine3 != "" %} {{case_details.case_data.deceasedAddress.AddressLine3}}{% endif %}
{% if case_details.case_data.deceasedAddress.PostTown != null and case_details.case_data.deceasedAddress.PostTown != "" %} {{case_details.case_data.deceasedAddress.PostTown}}{% endif %}
{% if case_details.case_data.deceasedAddress.County != null and case_details.case_data.deceasedAddress.County != "" %} {{case_details.case_data.deceasedAddress.County}}{% endif %}
{% if case_details.case_data.deceasedAddress.PostCode != null and case_details.case_data.deceasedAddress.PostCode != ""%} {{case_details.case_data.deceasedAddress.PostCode}}{% endif %}
{% if case_details.case_data.deceasedAddress.Country != null and case_details.case_data.deceasedAddress.Country != ""%} {{case_details.case_data.deceasedAddress.Country}}{% endif %}
in which
{% if case_details.case_data.executorForenames != null and case_details.case_data.executorForenames != ""%}{{case_details.case_data.executorForenames}}{% endif %} {% if case_details.case_data.executorSurname != null and case_details.case_data.executorSurname != ""%}{{case_details.case_data.executorSurname}}{% endif %}
of {% if case_details.case_data.executorAddress.AddressLine1 != null and case_details.case_data.executorAddress.AddressLine1 != "" %}{{ case_details.case_data.executorAddress.AddressLine1}}{% endif %}
{% if case_details.case_data.executorAddress.AddressLine2 != null and case_details.case_data.executorAddress.AddressLine2 != "" %} {{case_details.case_data.executorAddress.AddressLine2}}{% endif %}
{% if case_details.case_data.executorAddress.AddressLine3 != null and case_details.case_data.executorAddress.AddressLine3 != "" %} {{case_details.case_data.executorAddress.AddressLine3}}{% endif %}
{% if case_details.case_data.executorAddress.PostTown != null and case_details.case_data.executorAddress.PostTown != "" %} {{case_details.case_data.executorAddress.PostTown}}{% endif %}
{% if case_details.case_data.executorAddress.County != null and case_details.case_data.executorAddress.County != "" %} {{case_details.case_data.executorAddress.County}}{% endif %}
{% if case_details.case_data.executorAddress.PostCode != null and case_details.case_data.executorAddress.PostCode != ""%} {{case_details.case_data.executorAddress.PostCode}}{% endif %}
{% if case_details.case_data.executorAddress.Country != null and case_details.case_data.executorAddress.Country != ""%} {{case_details.case_data.executorAddress.Country}}{% endif %}
{% for executor in case_details.case_data.additionalExecutorList %}
and {% if executor.value.executorForenames != null and executor.value.executorForenames != ""%}{{executor.value.executorForenames}}{% endif %} {% if executor.value.executorSurname != null and executor.value.executorSurname != ""%}{{executor.value.executorSurname}}{% endif %}
{% if executor.value.executorAddress.AddressLine1 != null and executor.value.executorAddress.AddressLine1 != "" %}of {{ executor.value.executorAddress.AddressLine1 }}{% endif %}
{% if executor.value.executorAddress.AddressLine2 != null and executor.value.executorAddress.AddressLine2 != "" %}{{ executor.value.executorAddress.AddressLine2 }}{% endif %}
{% if executor.value.executorAddress.AddressLine3 != null and executor.value.executorAddress.AddressLine3 != "" %}{{ executor.value.executorAddress.AddressLine3 }}{% endif %}
{% if executor.value.executorAddress.PostTown != null and executor.value.executorAddress.PostTown != "" %}{{ executor.value.executorAddress.PostTown }}{% endif %}
{% if executor.value.executorAddress.County != null and executor.value.executorAddress.County != "" %}{{ executor.value.executorAddress.County }}{% endif %}
{% if executor.value.executorAddress.PostCode != null and executor.value.executorAddress.PostCode != ""%}{{ executor.value.executorAddress.PostCode }}{% endif %}
{% if executor.value.executorAddress.Country != null and executor.value.executorAddress.Country != ""%}{{ executor.value.executorAddress.Country }}{% endif %}
{% endfor %}
{% if case_details.case_data.registryLocation == "Cardiff" %}
are appointed executors has been lodged at Probate Registry of Wales for deposit in the Principal Registry of the Family Division, {{case_details.newcastleRegistryAddress}} for safe custody pursuant to section 126 of the Senior Court Act 1981.
{% else %}
are appointed executors has been lodged at {{case_details.case_data.registryLocation}} District Probate Registry for deposit in the Principal Registry of the Family Division, {{case_details.newcastleRegistryAddress}} for safe custody pursuant to section 126 of the Senior Court Act 1981.
{% endif %}
Except by leave of the District Judge of the Principal Registry the will may not be given out during the lifetime of the testator
|


Before Change
self.failUnless("norm" in names)
inorm = names.index("norm")
// and it should be at least in the first 5 best matching
self.failUnless(inorm <= 7)
def suite():
return unittest.makeSuite(StatsTests)
After Change
self.failUnless("norm" in names)
inorm = names.index("norm")
// and it should be at least in the first 5 best matching
if cfg.getboolean("tests", "labile", default="yes"):
self.failUnless(inorm <= 7)
def suite():
return unittest.makeSuite(StatsTests)


WinMTRDialog Class Reference
#include <dialog.h>
List of all members.
|
Public Member Functions |
|
int | InitMTRNet () |
|
int | DisplayRedraw () |
| | show tabular traceroute data in original WinMTR format
|
|
int | ShowTraceTable () |
| | show the traceroute table in IXmaps TrGen canonical format
|
|
void | SetHostName (const char *host) |
|
void | SetInterval (float i) |
|
void | SetPingSize (int ps) |
|
void | SetUseDNS (BOOL udns) |
|
void | SetMaxAttempts (int nprobes) |
| | set the number of probes for each hop
|
| void | errMsg (const char *msg) |
| | display an error message on standard output
|
|
int | restart (const char *Hostname) |
Public Attributes |
|
bool | start |
| | set to enable traceroute
|
|
double | interval |
| | wait time for a batch of pings, nominally 1.0 seconds
|
|
int | pingsize |
| | size of the outgoing ping probe IPv4+ICMP+payload
|
|
bool | useDNS |
|
int | max_att |
| | number of ping batches to run
|
Protected Attributes |
|
char | defaulthostname [1000] |
Detailed Description
pseudo-dialog. It was a real dialog in the original WinMTR.
Member Function Documentation
| void WinMTRDialog::errMsg |
( |
const char * |
msg |
) |
|
display an error message on standard output
- Todo:
- { perhaps this should output to std::cerr }
The documentation for this class was generated from the following files:


Next
Previous Contents
YAEP (Yet Another Earley Parser) - C interface
Vladimir Makarov,
<EMAIL_ADDRESS>Oct 10, 2015
This document describes YAEP (Yet Another Earley Parser) written in C/C++.
1.
YAEP
Next
Previous Contents


29 December 2010 - The Ministry of Health of Egypt has announced two new cases of human infection with H5N1 avian influenza.
A 28 year-old woman from Damanhour district of El Beheira governorate developed symptoms on 12 December. She was admitted to hospital on the 14th and subsequently discharged on the 22nd in good and stable condition. She has a history of exposure in a market where live animals are sold.
An 11 year-old girl from Esna district of Luxor governorate developed symptoms on 18 December and was admitted in the hospital the following day. She experienced severe respiratory symptoms requiring mechanical ventilation and died on 23 December. No information is available regarding poultry exposure. Investigations into the source of infection are underway.
Laboratory tests have confirmed H5N1 virus and both patients were treated with antiviral medications. Of the 115 cases confirmed to date in Egypt, 38 have been fatal.


{{ device.description }}
Device has no User(s)
Vendor: {{ device.vendor }}
Model: {{ device.model }}
Version: {{ device.version }}
Device has no Subrack(s)
Device has no Profile(s)
Device has no V-Lan(s)
$ ssh {{ device.credential_details[0].username }}@{{ device.mgmt_address }} -p {{ device.network_port }}
{{ device.credential_details[0].password }}


--- notes: | - Data is recommended as an alternative to using images - For screen readers, ensure the data value appears first so it makes sense when read aloud ---


Senior Computer Science major at the University of Florida in Gainesville, FL. Proficient in Java, C++. Experienced in MEAN STACK and Agile Scrum. Published and experienced researcher with two summers of research at world-renowned institutions. Fluent in French and proficient in Spanish.
Working for Siemens Energy through the University of Florida's Integrated Product and Process Design (IPPD) program. I am working on an interdisciplinary team. Our goal is to develop a process and associated desktop, mobile device, and web server applications to manage the process of efficiently adding metadata to gas turbine field service hardware images. The image sources may come from digital cameras, including cellphones and tablets, and specialty inspection devices such as borescope, infrared cameras, smartphone cameras, and X-Ray systems. For development we are implementing Agile Scrum Methodology.
I participated in an internship funded by the National Science Foundation. I am worked alongside a Computer Science PhD student Ozgur Kafali and accomplished Professor Dr. Laurie Williams at North Carolina State University. Our research topic was The Discrepancies Between Security Breaches and Policy. The goal of our research was to refine security policies and regulations based on identified gaps/holes with respect to breaches. I mainly worked on creating an automated process for security breach refinement. We wrote about findings in a paper titled Corba: Connecting Regulations and Breaches Using the Crowd and submitted it to the HotSos (Hot Topics in Science of Security)'18. It was accepted to the Poster Track of the HotSoS 2018.
I participated in a three month internship sponsored by the U.S. Department of Defense and the National Science Foundation. Worked with accomplished Professors Dr. Pissinou and Dr. Iyengar to complete cutting edge research. With their help I was able to create a mobile application the increases user location privacy via Location Based Services. My partner (PhD student Abdur Shahid) and I wrote a paper called PPVC: Privacy Preserving Cells for Location-Based Services on our findings which is accepted by the International Conference on Computing, Networking, and Communications(ICNC). I presented my findings at the ICNC conference in Silicon Valley January 2017.
Founded organization alongside my brother Harold, who is a student at the University of Miami. I worked with a team to ensure that deadlines were met and company was running smoothly. Opened a chapter of the organization at the University of Miami. Consistently met deadlines and requirements for all production work orders. Refurbished donated electronic devices and sent them to third-world countries. Global Sigma has most recently aided Syrian refugees.
Travelled the world playing professional tennis tournaments. Discovered new cultures and met new people. Reached a high ranking of #533 in the world. Won Most Promising Newcomer of the Year at the Dow Corning 100k in Midland, MI in 2012.
GPA: 3.25
Outside of work and school, I enjoy staying active, playing the piano, and giving back to my community. I started playing tennis at the age of seven. Today, though I do not play professional tennis anymore, I still manage to play at least three hours per week. I also enjoy playing the piano and writing music. When I was 14 years old, I taught myself to play the piano by ear and every since, I have been writing my own music. Today, I have written over 40 songs. Lastly, I love giving back to my community. I volunteer regularly in anyway possible. Whether it be teaching children tennis or introducing young children to the concept of Computer Science, I try to give back as much as I possibly can.
I was born in the West African Country of Cameroon on May 26th, 1996. My family and I moved to the United States when I was two years old to flee the political unrest at the time. In 2015, I became a citizen and in May 2018, I will earn my Bachelor’s of Science in Computer Science. I consider it an amazing advantage to have been raised and educated in the United States. Because of my upbringing, I understand the importance of continuous hard work and perseverance.
When I was seven years old, I started playing tennis and I fell in love with sport shortly thereafter. For the next nine years, I would travel across the country playing tournaments. I was fortunate enough to visit 37 states and Canada. I have had the opportunity to meet a variety of people from different countries across the world. I believe that this experience has shaped into the person I am today.
In Spring 2013, I started my collegiate tennis career at Clemson University in Clemson, SC. After eight months at Clemson, I decided to begin my professional career. I reached a high rank of #533 in the world and competed in prestigious tournaments such as the U.S. Open. In March 2016, I was seriously injured with rotator cuff tendonitis which put a dampener on my tennis career. Thus, I put my focus on academics.
In August 2014, I turned my hobby of tinkering with computers into a non-profit organization. Global Sigma is an organization that I cofounded with my brother a senior at the University of Miami, and my uncle a professor at the Rochester Institute of Technology. The mission of Global Sigma is to help underprivileged students obtain the technology they need to be successful in school such as laptops, printers, and scanners. Through our organization, we receive old electronic devices from donors and refurbish them for these students to use. For the past two years, I’ve worked alongside my brother as the Vice President of Global Sigma and through this experience, I’ve gained a deeper appreciation for the use of technology as a tool to help those less fortunate.
In the summer of 2016, I participated in an internship funded by the Department of Defense and the National Science Foundation located at Florida International University (FIU). During this internship, I learned many valuable skills such as the ability to create a mobile application via Android Studios. This particular project was initially daunting because I had never attempted such a task before. I had to problem solve quickly and efficiently to complete the tasks at hand. The application I created alongside PhD student Abdur Bin Shahid, was able to generate an algorithm that can be used to increase user location privacy on Location Based Services via spatial obfuscation. This research project generated a paper final titled: Privacy Preserving Voronoi Cells which was submitted to the International Conference on Computing, Networking, and Communications (ICNC). The paper was eventually published and I had the privilege to present my paper at a conference in Silicon Valley in January of 2017.
In the summer of 2017, I participated in an internship funded by the National Science Foundation at North Carolina State University (NCSU) in Raleigh, NC. I worked alongside a Computer Science graduate student at NCSU as well as with my faculty mentor, Dr. Laurie Williams. Our research topic was The Discrepancies Between Security Breaches and Policy. The goal of our research was to refine security policies and regulations based on identified gaps/holes with respect to the security breaches. I worked mainly on creating an automated process for security breach refinement. We submitted our work to the ISE (International Conference on Software Engineering) ’18 and it is currently pending acceptance.
Aside, from my research experience, I also have industry work experience. During my senior year at the University of Florida, I was accepted into the Integrated Product and Process Design (IPPD) program. In this program, I am assigned to a company to developed software with a team of five other talented engineers. Our sponsor company for this project is Siemens Energy. Our goal is to develop a mobile and desktop application to manage the process of efficiently adding metadata to gas turbine field service hardware images. The image sources may come from digital cameras, including cellphones and tablets, and specialized equipment such as borescopes, infrared cameras, and X-Ray systems. The product is set to be completed and delivered to Siemens Energy by April 2018.


Defined in Module impact.timer, inherits from ig.Class
var timer = new ig.Timer(); // Difference between current time and the time .set() timer.delta(); // => 0 // Set the timer to 5 seconds in the future timer.set( 5 ); timer.delta(); // => -5 // ... one second later timer.delta(); // => -4 // ... 5 more seconds later timer.delta(); // => 1
The ig.Timer
has two distinct modes of operation. You can either get the difference (.delta()) between the current time and the timers target time (as set by the constructor or .set()) or just get the current tick - the time since the last call to .tick().
All timers are only updated once for each frame. So calling .delta()
on one timer several times during one frame, will result in the exact same return value.
ig.Timer
does not measure real time, but game time. Game time can progress slower than the real time, when the browser can't keep up with executing the game loop several times (default 20) per second. See ig.Timer.maxStep.
How fast the game time progresses is also depended on the global ig.Timer.timeScale property.
Be aware, that all time intervals are in seconds, as opposed to JavaScripts milliseconds.
seconds
Relative target time. Default 0
.Returns the time in seconds relative to the timers target time. See .set().
If the target time is in the future, the return value of this function will be negative (e.g. -5
for 5 seconds in the future). If the target time is in the past, the return value will be positive. It essentially returns the time "since" the target time.
If you, for instance, want to measure how long the player took to finish a level of your game, just create a new timer when the level starts and call .delta()
when the level ends.
// at level start var playTimer = new ig.Timer(); // no "target" time given = NOW. // ... at level end var timeNeeded = playTimer.delta(); // reset the timer at the start of the next level playTimer.reset();
New in 1.20
Pauses the timer. Calling .delta()
for paused timers will always return the same value. .tick()
will return 0
.
Calling .unpause()
, .set()
or .reset()
unpauses the timer.
New in 1.20
Resumes a paused timer.
Reset the starting time for this timer. This does not reset the target time.
var timer = new ig.Timer( 5 ); // ... one second later timer.delta(); // => -4 timer.reset(); timer.delta(); // => -5
Resets the starting time for this timer and sets the relative target time. Default 0
.
var timer = new ig.Timer( 5 ); // ... one second later timer.delta(); // => -4 timer.set( 3 ); timer.delta(); // => -3
Get the time since the last call to .tick() for this timer. Note that, since ig.Timer
represents game time, it does not update during a single frame. E.g.:
var timer = new ig.Timer(); timer.tick(); // => 0 doSomethingVeryComplicatedThatTakesAFewSeconds( andBlocksEverything ); timer.tick(); // => 0
A global tick, updated each frame, is also provided at ig.system.tick
.
The max time step. The game time will never advance more than this per frame. The default is 0.05
, which equals a minimum frame rate of 20 fps. If the browser is unable to run at at least 20 fps, the game is essentially slowed down.
Game time factor. With a value of 0.5
the game will run in slow motion, with 2
it will run at twice the speed. The default is 1
.


7+ ways to plot dendrograms in R
03 Oct 2012Today we are going to talk about the wide spectrum of functions and methods that we can use to visualize dendrograms in R. You can check an extended version of this post with the complete reproducible code in R in this Rpub.
A quick reminder: a dendrogram (from Greek dendron=tree, and gramma=drawing) is nothing more than a tree diagram that practitioners use to depict the arrangement of the clusters produced by hierarchical clustering.
1) Basic dendrograms
Let's start with the most basic type of dendrogram. For that purpose we'll use the mtcars
dataset and we'll calculate a hierarchical clustering with the function hclust()
(with the default options).
# prepare hierarchical cluster
hc = hclust(dist(mtcars))
# very simple dendrogram
plot(hc)
# labels at the same level
plot(hc, hang = -1)
2) A less basic dendrogram
In order to add more format to the dendrograms like the one above, we simply need to tweek the right parameters.
# set background color
op = par(bg = "#DDE3CA")
# plot dendrogram
plot(hc, col = "#487AA1", col.main = "#45ADA8", col.lab = "#7C8071",
col.axis = "#F38630", lwd = 3, lty = 3, sub = '', hang = -1, axes = FALSE)
# add axis
axis(side = 2, at = seq(0, 400, 100), col = "#F38630",
labels = FALSE, lwd = 2)
# add text in margin
mtext(seq(0, 400, 100), side = 2, at = seq(0, 400, 100),
line = 1, col = "#A38630", las = 2)
par(op)
An alternative way to produce dendrograms is to specifically convert "hclust"
objects into "dendrograms"
objects.
# using dendrogram objects
hcd = as.dendrogram(hc)
# alternative way to get a dendrogram
op = par(mfrow = c(2, 1))
plot(hcd)
# triangular dendrogram
plot(hcd, type = "triangle")
par(op)
3) Zooming-in on dendrograms
Another very useful option is the ability to inspect selected parts of a given tree. For instance, if we wanted to examine the top partitions of the dendrogram, we could cut it at a height of 75
# plot dendrogram with some cuts
op = par(mfrow = c(2, 1))
plot(cut(hcd, h = 75)$upper, main = "Upper tree of cut at h=75")
plot(cut(hcd, h = 75)$lower[[2]],
main = "Second branch of lower tree with cut at h=75")
par(op)
4) More customizable dendrograms
In order to get more customized graphics we need a little bit of more code. A very useful resource is the function dendrapply()
that can be used to apply a function to all nodes of a dendrgoram. This comes very handy if we want to add some color to the labels.
# vector of colors
labelColors = c("#CDB380", "#036564", "#EB6841", "#EDC951")
# cut dendrogram in 4 clusters
clusMember = cutree(hc, 4)
# function to get color labels
colLab <- function(n) {
if (is.leaf(n)) {
a <- attributes(n)
labCol <- labelColors[clusMember[which(names(clusMember) == a$label)]]
attr(n, "nodePar") <- c(a$nodePar, lab.col = labCol)
}
n
}
# using dendrapply
clusDendro = dendrapply(hcd, colLab)
# make plot
plot(clusDendro, main = "Cool Dendrogram", type = "triangle")
5) Phylogenetic trees
Closely related to dendrograms, phylogenetic trees are another option to display tree diagrams showing the relationships among observations based upon their similarities.
A very nice tool for displaying more appealing trees is provided by the R package "ape"
. In this case, what we need is to convert the "hclust"
objects into "phylo"
objects with the funtions as.phylo()
. The plot.phylo()
function has four more different types for plotting a dendrogram. Here they are:
# load package ape;
# remember to install it: install.packages("ape")
library(ape)
# plot basic tree
plot(as.phylo(hc), cex = 0.9, label.offset = 1)
# cladogram
plot(as.phylo(hc), type="cladogram", cex = 0.9, label.offset = 1)
# unrooted
plot(as.phylo(hc), type = "unrooted")
# fan
plot(as.phylo(hc), type = "fan")
# radial
plot(as.phylo(hc), type = "radial")
What I really like about the ape
package is that we have more control on the appearance of the dendrograms, being able to customize them in different ways. For example, we can tweek some parameters according to our needs
# vector of colors
mypal = c("#556270", "#4ECDC4", "#1B676B", "#FF6B6B", "#C44D58")
# cutting dendrogram in 5 clusters
clus5 = cutree(hc, 5)
# plot
op = par(bg="#E8DDCB")
# Size reflects miles per gallon
plot(as.phylo(hc), type = "fan", tip.color = mypal[clus5], label.offset = 1,
cex = log(mtcars$mpg,10), col = "red")
par(op)
6) Dendrograms with ggdendro
For reasons that are unknown to me, the The R package "ggplot2"
have no functions to plot dendrograms. However, the ad-hoc package "ggdendro"
offers a decent solution. You would expect to have more customization options, but so far they are rather limited. Anyway, for those of us who are ggploters this is another tool in our toolkit.
# remember to install the package: install.packages("ggdendro")
library(ggplot2)
library(ggdendro)
# basic option
ggdendrogram(hc, theme_dendro = FALSE)
# another option
ggdendrogram(hc, rotate = TRUE, size = 4, theme_dendro = FALSE)
7) Colored dendrogram
Last but not least, there's one more resource available from Romain Francois's addicted to R gallery which I find really interesting. The code in R for generating colored dendrograms, which you can download and modify if wanted so, is available here
# load code of A2R function
source("http://addictedtor.free.fr/packages/A2R/lastVersion/R/code.R")
# colored dendrogram
op = par(bg = "#EFEFEF")
A2Rplot(hc, k = 3, boxes = FALSE, col.up = "gray50",
col.down = c("#FF6B6B", "#4ECDC4", "#556270"))
par(op)
For a more detailed version of the code presented in this post, check this Rpub.


class SycLink::Designer
Creates a designer that acts as a proxy between the user and the website. The designer will create a website with the provided title.
Creates a designer that acts as a proxy between the user and the website. The designer will create a website with the provided title.
Attributes
The website the designer is working on
Public Instance Methods
Adds a link based on the provided arguments to the website
# File lib/syclink/designer.rb, line 27 def add_link(url, args = {}) website.add_link(Link.new(url, args)) end
Reads arguments from a CSV file and creates links accordingly. The links are added to the websie
# File lib/syclink/designer.rb, line 33 def add_links_from_file(file) File.foreach(file) do |line| next if line.chomp.empty? url, name, description, tag = line.chomp.split(';') website.add_link(Link.new(url, { name: name, description: description, tag: tag })) end end
Creates the html representation of the website. The website is saved to the directory with websites title and needs an erb-template where the links are integrated to. An example template can be found at templates/syclink.html.erb
# File lib/syclink/designer.rb, line 152 def create_website(directory, template_filename) template = File.read(template_filename) File.open(html_file(directory, website.title), 'w') do |f| f.puts website.to_html(template) end end
Deletes the website if it already exists
# File lib/syclink/designer.rb, line 142 def delete_website(directory) if File.exists? yaml_file(directory, website.title) FileUtils.rm(yaml_file(directory, website.title)) end end
Export links to specified format
# File lib/syclink/designer.rb, line 51 def export(format) message = "to_#{format.downcase}" if website.respond_to? message website.send(message) else raise "cannot export to #{format}" end end
Finds links based on a search string
# File lib/syclink/designer.rb, line 66 def find_links(search) website.find_links(search) end
Accepts and SycLink::Importer to import Links and add them to the website
# File lib/syclink/designer.rb, line 44 def import_links(importer) importer.links.each do |link| website.add_link(link) end end
List links contained in the website and optionally filter on attributes
# File lib/syclink/designer.rb, line 61 def list_links(args = {}) website.list_links(args) end
Loads a website based on the provided YAML-file and asigns it to the designer to operate on
# File lib/syclink/designer.rb, line 137 def load_website(website) @website = YAML.load_file(website) end
Merge links with same URL
# File lib/syclink/designer.rb, line 108 def merge_links website.merge_links_on(:url) end
Creates a new website where designer can operate on
# File lib/syclink/designer.rb, line 22 def new_website(title = "SYC LINK") @website = Website.new(title) end
Deletes one or more links from the website. Returns the deleted links. Expects the links provided in an array
# File lib/syclink/designer.rb, line 114 def remove_links(urls) urls.map { |url| list_links({ url: url }) }.flatten.compact.each do |link| website.remove_link(link) end end
Deletes links based on URLs that are provided in a file. Each URL has to be in one line
# File lib/syclink/designer.rb, line 122 def remove_links_from_file(file) urls = File.foreach(file).map { |url| url.chomp unless url.empty? } remove_links(urls) end
Check links availability. Takes a filter which values to return and whether to return available, unavailable or available and unavailable links. In the following example only unavailable links' url and response would be returned
report_links_availability(available: false, unavailable: false, columns: "url,response")
# File lib/syclink/designer.rb, line 77 def report_links_availability(opts) cols = opts[:columns].gsub(/ /, "").split(',') website.report_links_availability.map do |url, response| result = if response == "200" and opts[:available] { "url" => url, "response" => response } elsif response != "200" and opts[:unavailable] { "url" => url, "response" => response } end next if result.nil? cols.inject([]) { |res, c| res << result[c.downcase] } end.compact end
Saves the website to the specified directory with the downcased name of the website and the extension 'website'. The website is save as YAML
# File lib/syclink/designer.rb, line 129 def save_website(directory) File.open(yaml_file(directory, website.title), 'w') do |f| YAML.dump(website, f) end end
Updates a link. The link is identified by the URL. If there is more than one link with the same URL, only the first link is updated
# File lib/syclink/designer.rb, line 92 def update_link(url, args) website.find_links(url).first.update(args) end
Updates links read from a file
# File lib/syclink/designer.rb, line 97 def update_links_from_file(file) File.foreach(file) do |line| next if line.chomp.empty? url, name, description, tag = line.chomp.split(';') website.find_links(url).first.update({ name: name, description: description, tag: tag }) end end


ClickHouse should always work.
If ZooKeeper is unavailable at server startup,
the ReplicatedMergeTree tables will start in read-only mode
and initialize asynchronously in background
as soon as ZooKeeper will be available.
— the same applicable for ClickHouse Keeper as well;
— especially useful for embedded ClickHouse Keeper;
Developers: Antonio Andelic. Since 22.9.
Session expired. Table is in readonly mode 😠
Never again:
SET insert_keeper_max_retries = 10;
INSERT will survive restarts of ClickHouse Keeper or ZooKeeper
and reconnections.
Developer: Igor Nikonov. Since 22.11.
Table is in readonly mode 😠
Was: around one minute for reconnection, for no reason.
Now: milliseconds 🥲
Developer: Raul Marin. Since 22.10.
DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts 😠
Now: relaxing the "too many parts" threshold:
Allow large number of parts if they are large in average.
Developer: Alexey Milovidov. Since 22.10.
Was: strict per-query limit, max_memory_usage = 10 GB by default.
Now: query can use the memory if it's available;
in case of memory shortage, the most "overcommitted" query is terminated with exception.
Developer: Dmitry Novik.
No need to use ZooKeeper anymore!
Always use ClickHouse Keeper instead of ZooKeeper.
Developer: Alexander Sapin, Antonio Andelic.
ClickHouse should support everything you expect.
SELECT
y::String || '.'
|| (y < toYear(today()) - 2000 - 1 ? '*' : m::String) AS Version,
(n <= 3 OR (is_lts AND lts_n <= 2)) ? '✔' : '❌' AS Supported
FROM (
SELECT y, m,
count() OVER (ORDER BY y DESC, m DESC) AS n,
m IN (3, 8) AS is_lts,
countIf(is_lts) OVER (ORDER BY y DESC, m DESC) AS lts_n
FROM (
WITH extractGroups(version, 'v(\d+)\.(\d+)') AS v,
v[1]::INT AS y, v[2]::INT AS m
SELECT y, m
FROM file('version_date.tsv', TSV, 'version String, date String')
ORDER BY y DESC, m DESC
LIMIT 1 BY y, m)
)
LIMIT 1 BY Version
FORMAT Markdown
Supported range for DateTime64 and Date32 data types:
Was: 1925–2283.
Now: 1900–2300.
Uses proleptic Gregorian calendar.
Motivation: store dates of birth of the customers.
Developer: Roman Vasin. Since 22.8.
SET mutations_sync = 1;
ALTER TABLE hits
DELETE WHERE Title LIKE '%Mongo%';
— 205 sec (for a table with 100 million records).
DELETE FROM hits
WHERE Title LIKE '%Mongo%';
— ??? sec.
Developers: Alexander Gololobov, Jianmei Zhang.
Used with ROLLUP, CUBE or GROUPING SETS.
To distinguish different sets.
SELECT k, GROUPING(k) FROM table GROUP BY k WITH ROLLUP
Developer: Dmitriy Novik.
SELECT DISTINCT repo_name, title FROM github_events WHERE title ILIKE ( repo_name LIKE '%ClickHouse%' ? '%fast%' : '%slow%') AND repo_name IN ('ClickHouse/ClickHouse', 'elastic/elasticsearch')
Now I can put LIKE inside LIKE and looks like you're going to like it.
Developer: Robert Schulze. Since 22.6.
Examples:
SELECT now() + INTERVAL 1 MONTH;
SELECT now() + INTERVAL '1 MONTH';
SELECT now() + INTERVAL 1 MONTH - INTERVAL 2 DAY;
SELECT now() + INTERVAL '1 MONTH -2 DAY';
SELECT now() + (INTERVAL 1 MONTH - INTERVAL 2 DAY);
SELECT INTERVAL '1 MONTH -2 DAY';
SELECT (INTERVAL 1 MONTH - INTERVAL 2 DAY);
SELECT INTERVAL '1 MONTH 1 MONTH';
Developer: Nikolai Degterinsky. Since 22.11.
ClickHouse never slows down!
Improvement of ORDER BY, insert and merge in MergeTree,
and window functions.
SELECT WatchID FROM hits_100m_obfuscated ORDER BY Age
Before:
Elapsed: 4.154 sec. (24.07 million rows/s., 216.64 MB/s.)
After:
Elapsed: 0.482 sec. (207.47 million rows/s., 1.87 GB/s.)
Developer: Maksim Kita.
Speed-up of SELECT with FINAL modifier.
It "simply" improves performance up to 4 times.
Especially for complex transforms like Collapsing and Replacing.
Developer: Nikita Taranov.
Optimize ORDER BY with LIMIT.
Optimize ORDER BY with single column.
Optimize INSERT into MergeTree with composite ORDER key.
Optimize dictGetChildren, dictGetDescendants.
Optimize cleanup stage of queries with large GROUP BY.
Optimize background CPU usage of large number of tables.
Developer: Maksim Kita, Nikita Taranov.
Optimize COUNT(DISTINCT ...) for low number of GROUP BY keys.
Optimize GROUP BY with CPU prefetcher.
Optimize GROUP BY with better block sizes.
Developer: Nikita Taranov.
— "direct" algorithm:
to join with key-value tables by direct lookups a.k.a. nested loops.
Good if the left table is small, but the right table is like a large dictionary.
Good to use in MATERIALIZED VIEW queries.
— "parallel_hash" algorithm:
speed-up if the right hand table is large.
— "full_sorting_merge" algorithm:
when right hand side is large
and does not fit in memory and does not allow lookups.
— "grace_hash" algorithm:
since in 22.12.
Developer: Vladimir Cherkasov, lgbo-ustc.
... and we are reading from object storage 100 times faster.
Developer: Ksenia Sumarokova.
ClickHouse integrates with everything!
ClickHouse can work as a server (clickhouse-server)
or as a tool without installation (clickhouse-local).
ClickHouse can store the data
or process externally stored data on the fly.
External data:
— remote databases: MySQL, PostgreSQL, MongoDB, ODBC, JDBC...
— object storages: S3, HDFS, Azure, COSN, OSS...
— from URL and local files;
All possible data formats:
— text: CSV, TSV, JSON, Values, MySQLDump, Regexp...
— binary: Parquet, Arrow, ORC, Avro, Protobuf, MsgPack...
— schemaful and schemaless;
Now ClickHouse supports Apache Hudi and Delta Lake
for SELECT queries.
TODO: Apache Iceberg.
Advantages:
— these formats are somewhat resembling MergeTree
allowing incremental data insertion,
approaching to ClickHouse data formats;
Disadvantages:
— alien data formats from Apache/Hadoop/Java world;
— nothing works out of the box
unless you really know how to deal with it;
Now ClickHouse supports Apache Hudi and Delta Lake
for SELECT queries.
SELECT count() FROM deltaLake(
'https://clickhouse-public-datasets.s3.amazonaws.com/delta_lake/hits/')
WHERE URL LIKE '%google%'
-- 4.396 sec.
Developers: Daniil Rubin, Ksenia Sumarokova, Flynn ucasfl. Since 22.11.
— Querying MongoDB and Meilisearch with table functions.
— Streaming data consumption from NATS.
Developer: Anastasia Petrenko, Ksenia Sumarokova. Since 22.7.
Visualizations:
— official ClickHouse plugin for Grafana;
— official support for Superset;
— HEX and Deepnote support.
Data ingestion and processing:
— Kafka Connect integration;
— Airflow, dbt support.
Language drivers:
— official Node.JS driver;
— optimized Go driver;
— a new Python client.
ClickHouse is easy to configure for your needs.
The most simple way to install ClickHouse:
curl https://clickhouse.com/ | sh
Single binary package. Installs the latest version. Includes debug info.
Works on every Linux (x86_64, aarch64, powerpc64le),
macOS (x86_64, M1), FreeBSD and Windows (WSL2).
Was: 2.1 GB.
Now: 446 MB, takes ~5 seconds to decompress on first run.
Developer: Arthur Filatenkov, Yakov Olkhovskiy.
So, ClickHouse supports a lot of protocols:
— HTTP
— HTTPs
— Native TCP
— Native TCP wrapped in PROXYv1
— Native TCP with TLS
— MySQL (with TLS support)
— PostgreSQL (with TLS support)
— GRPC (with TLS)
— Replication protocol over HTTP
— Replication protocol over HTTPs
— Keeper client-server protocol;
— Keeper consensus protocol;
— ...
So, ClickHouse supports a lot of protocols.
How to configure all of them? What if:
— server has multiple network interfaces?
— enable one protocol on multiple ports?
— I want native TCP for localhost only and HTTPs from everywhere?
— I want different TLS certificates for different protocols?
— I want to wrap one protocol in another?
<protocols>
<tcp>
<type>tcp</type>
<host>::</host>
<port>9000</port>
<description>native protocol</description>
</tcp>
<tcp_secure>
<type>tls</type>
<impl>tcp</impl>
<port>9440</port>
<description>secure native protocol</description>
</tcp_secure>
<tcp_endpoint>
<impl>tcp</impl>
<host><IP_ADDRESS></host>
<port>9001</port>
<description>native protocol, another</description>
</tcp_endpoint>
<tcp_proxy>
<type>proxy1</type>
<impl>tcp</impl>
<port>9100</port>
<description>native protocol with PROXYv1</description>
</tcp_proxy>
The case: ClickHouse under proxy:
Envoy Proxy / HAProxy / CloudFlare.
ClickHouse server will receive connections from the proxy.
But it needs to know the source IP address for quotas, ACL and logging.
Solution: enable PROXYv1 protocol in the proxy
and configure it as a protocol wrapper in ClickHouse.
ClickHouse will read the header and unwrap the network packets.
Developer: Yakov Olkhovskiy. Since 22.10.
+ penetration testing, bug bounty program, audit reports...
— available since Oct 4th;
— free 14-day trial up to 10 TB of data;
Try it! https://clickhouse.cloud/.


jekyll
#Supported documents Jekyll supported three kind of documents. Posts, Pages and Collections
#Collections The files with the correct front matter are called documents. And these documents will have document.url that you can include into your markdown link.
The files without the correct front matter are called static files. And theses documents will not have document.url associated with them, you need to use the relative path of those documents if you want put the link of them into the index file. For example, if there is a static file test.txt, you want to reference to it in index.md, you need [test](../test.txt)
site.categories.CATEGORY only works for posts, not for pages.
post.excerpt only works for post. If you really want to display some excerpt for collections, you need to setup up the attributes in the front matter.


Donate Books
A room without books is like a body without a soul
HOME
Donate Books
Borrow Books
Feedbacks
About Us
To donate your book please fill in the following form
Book Category
Medical Books
Engineering Books
Computer and Programming
Other
Book Title
Book Image Link
Book Description


Odo Scroll Feedback
The Scroll Feedback class is an event emitter. It listens for input from the user: mouse, keyboard, or touch. Based on the input, the OdoScrollFeedback
instance will emit navigation events with a direction
property signifying which way the user should be taken. It's up to the implementer to decide what to do with these events.
Support
IE9+ with polyfills.
To support IE<=11, you will need to add a Element#closest
polyfill.
Dependencies
TinyEmitter. Assumes Object.assign
and Element.prototype.closest
exist. You may need to polyfill these.
Basic Usage
In this example, the body
element is the main element given to the scroll feedback class. It will be used to bind event listeners to (mouse wheels).
var scrollFeedback = new OdoScrollFeedback(document.body);
scrollFeedback.on(OdoScrollFeedback.Events.NAVIGATE, function (data) {
switch (data.direction) {
case OdoScrollFeedback.Direction.NEXT:
console.log('go to the next state');
break;
case OdoScrollFeedback.Direction.PREVIOUS:
console.log('go to the previous state');
break;
case OdoScrollFeedback.Direction.START:
console.log('home key pressed');
break;
case OdoScrollFeedback.Direction.END:
console.log('end key pressed');
break;
}
});
Free Scrolling
The OdoScrollFeedback
instance will disable native scrolling on whatever element you instantiate it with. On this page, the body has been used, so you are unable to scroll the page with the mouse or keyboard.
If you wish a section to be free-scrolling, there are two options. The first is to have the free-scrolling section outside (not a child element) of element given to the OdoScrollFeedback
. Alternatively, you can use the ignore
option. Make this a selector string and if a parent of the event.target
matches the selector, the event will be ignored.
var scrollFeedback = new OdoScrollFeedback(document.body, {
ignore: '.js-free-scroll'
});
The footer on this page uses the ignore option
.
Timing
The timings and thresholds are fully customizable via an options object. The defaults try to strike a balance between scrolling with a lot of force and not feeling stuck.
Options
Each option is described below. The ignore
option lets the user scroll/swipe inside an element and the OdoScrollFeedback
class will not try to interpret the user's intent.
OdoScrollFeedback.Defaults = {
ignore: null, // A selector string matching elements which should not be interpreted
movementThreshold: 5, // Amount needed in deltaY (touch or mouse wheel) before event is emitted.
scrollEndDelay: 350, // The amount of time between scrolls to trigger scroll end
scrollTimerDelay: 2000 // Delay before one continuous scroll triggers scroll end
};


|
muSE
r716
|
Go to the source code of this file.
Functions | |
| BEGIN_MUSE_C_FUNCTIONS MUSEAPI void | muse_assert_failed (void *env, const char *file, int line, const char *condtext) |
| Prints out an muse_assertion failure message in debug builds. | |
Copyright (c) 2006 Jointly owned by Srikumar K. S. and muvee Technologies Pte. Ltd.
All rights reserved. See LICENSE.txt distributed with this source code or http://muvee-symbolic-expressions.googlecode.com/svn/trunk/LICENSE.txt for terms and conditions under which this software is provided to you.


Kalamazoo Loaves and Fishes
Registration Form
Household Address
Household member 1
Household member information:
Name:
Date of Birth:


Activity Planner
Newest
In Progress
Finished
New Activity
Create Activity
Title
Notes
Create Activity
Cancel


ourNetwork
connecting people . . .
Welcome !
signin
Already have account ?
login
Welcome Back!
login


Package com.jme.scene
Class Spatial
- java.lang.Object
-
- com.jme.scene.Spatial
-
- All Implemented Interfaces:
HasLocalTransform
,CloneableSmartAsset
,Collidable
,Savable
,JmeCloneable
,java.lang.Cloneable
public abstract class Spatial extends java.lang.Object implements Savable, java.lang.Cloneable, Collidable, CloneableSmartAsset, JmeCloneable, HasLocalTransform
Spatial
defines the base class for scene graph nodes. It maintains a link to a parent, its local transforms and the world's transforms. All other scene graph elements, such asNode
andGeometry
are subclasses ofSpatial
.- Author:
- Mark Powell, Joshua Slack
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Spatial.BatchHint
Specifies if this spatial should be batchedstatic class
Spatial.CullHint
Specifies how frustum culling should be handled by this spatial.static class
Spatial.DFSMode
Specifies the mode of the depth first search.
-
Field Summary
Fields Modifier and Type Field Description protected Spatial.BatchHint
batchHint
protected SafeArrayList<Control>
controls
protected Spatial.CullHint
cullHint
protected Camera.FrustumIntersect
frustrumIntersects
protected AssetKey
key
Used for smart asset cachingprotected LightList
localLights
LightListprotected SafeArrayList<MatParamOverride>
localOverrides
protected Transform
localTransform
protected java.lang.String
name
This spatial's name.protected Node
parent
Spatial's parent, or null if it has none.protected RenderQueue.Bucket
queueBucket
float
queueDistance
protected int
refreshFlags
Refresh flags.protected static int
RF_BOUND
Refresh flag typesprotected static int
RF_CHILD_LIGHTLIST
Refresh flag typesprotected static int
RF_LIGHTLIST
Refresh flag typesprotected static int
RF_MATPARAM_OVERRIDE
Refresh flag typesprotected static int
RF_TRANSFORM
Refresh flag typesprotected RenderQueue.ShadowMode
shadowMode
protected java.util.HashMap<java.lang.String,Savable>
userData
protected BoundingVolume
worldBound
Spatial's bounding volume relative to the world.protected LightList
worldLights
protected SafeArrayList<MatParamOverride>
worldOverrides
protected Transform
worldTransform
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addControl(Control control)
Add a control to the list of controls.void
addLight(Light light)
addLight
adds the given light to the Spatial; causing all child Spatials to be affected by it.void
addMatParamOverride(MatParamOverride override)
Adds a local material parameter override.void
breadthFirstTraversal(SceneGraphVisitor visitor)
Visit each scene graph element ordered by BFSprotected abstract void
breadthFirstTraversal(SceneGraphVisitor visitor, java.util.Queue<Spatial> queue)
Spatial
center()
Centers the spatial in the origin of the world bound.boolean
checkCulling(Camera cam)
checkCulling
checks the spatial with the camera to see if it should be culled.void
clearMatParamOverrides()
Remove all local material parameter overrides.Spatial
clone()
Creates a clone of the asset.Spatial
clone(boolean cloneMaterial)
void
cloneFields(Cloner cloner, java.lang.Object original)
Called internally by com.jme3.util.clone.Cloner.Spatial
deepClone()
void
depthFirstTraversal(SceneGraphVisitor visitor)
Visit each scene graph element ordered by DFS with the default post order mode.abstract void
depthFirstTraversal(SceneGraphVisitor visitor, Spatial.DFSMode mode)
Visit each scene graph element ordered by DFS.void
forceRefresh(boolean transforms, boolean bounds, boolean lights)
(Internal use only) Forces a refresh of the given types of data.Spatial.BatchHint
getBatchHint()
Control
getControl(int index)
Returns the control at the given index in the list.<T extends Control>
TgetControl(java.lang.Class<T> controlType)
Returns the first control that is an instance of the given class, or null if no such control exists.Spatial.CullHint
getCullHint()
AssetKey
getKey()
Returns the asset key that is used to track this asset for garbage collection.Camera.FrustumIntersect
getLastFrustumIntersection()
Returns this spatial's last frustum intersection result.Spatial.BatchHint
getLocalBatchHint()
Spatial.CullHint
getLocalCullHint()
LightList
getLocalLightList()
Returns the localLightList
, which are the lights that were directly attached to thisSpatial
through theaddLight(com.jme.light.Light)
andremoveLight(com.jme.light.Light)
methods.SafeArrayList<MatParamOverride>
getLocalMatParamOverrides()
Get the local material parameter overrides.RenderQueue.Bucket
getLocalQueueBucket()
Quaternion
getLocalRotation()
getLocalRotation
retrieves the local rotation of this node.Vector3f
getLocalScale()
getLocalScale
retrieves the local scale of this node.RenderQueue.ShadowMode
getLocalShadowMode()
Matrix4f
getLocalToWorldMatrix(Matrix4f store)
Creates a transform matrix that will convert from this spatials' local coordinate space to the world coordinate space based on the world transform.Transform
getLocalTransform()
getLocalTransform
retrieves the local transform of this spatial.Vector3f
getLocalTranslation()
getLocalTranslation
retrieves the local translation of this node.java.lang.String
getName()
Returns the name of this spatial.int
getNumControls()
Node
getParent()
getParent
retrieves this node's parent.RenderQueue.Bucket
getQueueBucket()
Returns this spatial's renderqueue bucket.RenderQueue.ShadowMode
getShadowMode()
abstract int
getTriangleCount()
<T> T
getUserData(java.lang.String key)
java.util.Collection<java.lang.String>
getUserDataKeys()
abstract int
getVertexCount()
BoundingVolume
getWorldBound()
getWorldBound
retrieves the world bound at this node level.LightList
getWorldLightList()
Returns the worldLightList
, containing the lights combined from all thisSpatial's
parents up to and including thisSpatial
's lights.SafeArrayList<MatParamOverride>
getWorldMatParamOverrides()
Get the world material parameter overrides.Quaternion
getWorldRotation()
getWorldRotation
retrieves the absolute rotation of the Spatial.Vector3f
getWorldScale()
getWorldScale
retrieves the absolute scale factor of the spatial.Transform
getWorldTransform()
getWorldTransform
retrieves the world transformation of the spatial.Vector3f
getWorldTranslation()
getWorldTranslation
retrieves the absolute translation of the spatial.boolean
hasAncestor(Node ancestor)
determines if the provided Node is the parent, or parent's parent, etc.Spatial
jmeClone()
Called internally by com.jme3.util.clone.Cloner.Vector3f
localToWorld(Vector3f in, Vector3f store)
Convert a vector (in) from this spatial's local coordinate space to world coordinate space.void
lookAt(Vector3f position, Vector3f upVector)
lookAt
is a convenience method for auto-setting the local rotation based on a position in world space and an up vector.boolean
matches(java.lang.Class<? extends Spatial> spatialSubclass, java.lang.String nameRegex)
Note that we are matching the pattern, therefore the pattern must match the entire pattern (i.e.Spatial
move(float x, float y, float z)
Translates the spatial by the given translation vector.Spatial
move(Vector3f offset)
Translates the spatial by the given translation vector.Spatial
oldClone(boolean cloneMaterial)
Deprecated.void
read(JmeImporter im)
boolean
removeControl(Control control)
Removes the given control from this spatial's controls.void
removeControl(java.lang.Class<? extends Control> controlType)
Removes the first control that is an instance of the given class.boolean
removeFromParent()
removeFromParent
removes this Spatial from its parent.void
removeLight(Light light)
removeLight
removes the given light from the Spatial.void
removeMatParamOverride(MatParamOverride override)
Remove a local material parameter override if it exists.Spatial
rotate(float xAngle, float yAngle, float zAngle)
Rotates the spatial by the xAngle, yAngle and zAngle angles (in radians), (aka pitch, yaw, roll) in the local coordinate space.Spatial
rotate(Quaternion rot)
Rotates the spatial by the given rotation.void
rotateUpTo(Vector3f newUp)
rotateUpTo
is a utility function that alters the local rotation to point the Y axis in the direction given by newUp.void
runControlRender(RenderManager rm, ViewPort vp)
Called when the Spatial is about to be rendered, to notify controls attached to this Spatial using the Control.render() method.Spatial
scale(float s)
Scales the spatial by the given valueSpatial
scale(float x, float y, float z)
Scales the spatial by the given scale vector.void
setBatchHint(Spatial.BatchHint hint)
setBatchHint
alters how batching will treat this spatial.protected void
setBoundRefresh()
Indicate that the bounding of this spatial has changed and that a refresh is required.void
setCullHint(Spatial.CullHint hint)
setCullHint
alters how view frustum culling will treat this spatial.void
setKey(AssetKey key)
Set by theAssetManager
to track this asset.void
setLastFrustumIntersection(Camera.FrustumIntersect intersects)
Overrides the last intersection result.protected void
setLightListRefresh()
void
setLocalRotation(Matrix3f rotation)
setLocalRotation
sets the local rotation of this node by using aMatrix3f
.void
setLocalRotation(Quaternion quaternion)
setLocalRotation
sets the local rotation of this node.void
setLocalScale(float localScale)
setLocalScale
sets the local scale of this node.void
setLocalScale(float x, float y, float z)
setLocalScale
sets the local scale of this node.void
setLocalScale(Vector3f localScale)
setLocalScale
sets the local scale of this node.void
setLocalTransform(Transform t)
setLocalTransform
sets the local transform of this spatial.void
setLocalTranslation(float x, float y, float z)
setLocalTranslation
sets the local translation of this spatial.void
setLocalTranslation(Vector3f localTranslation)
setLocalTranslation
sets the local translation of this spatial.void
setLodLevel(int lod)
Sets the level of detail to use when rendering this Spatial, this call propagates to all geometries under this Spatial.void
setMaterial(Material material)
Applies the given material to the Spatial, this will propagate the material down to the geometries in the scene graph.protected void
setMatParamOverrideRefresh()
abstract void
setModelBound(BoundingVolume modelBound)
setModelBound
sets the bounding object for this Spatial.void
setName(java.lang.String name)
Sets the name of this spatial.protected void
setParent(Node parent)
Called byNode.attachChild(Spatial)
andNode.detachChild(Spatial)
- don't call directly.void
setQueueBucket(RenderQueue.Bucket queueBucket)
setQueueBucket
determines at what phase of the rendering process this Spatial will rendered.protected void
setRequiresUpdates(boolean f)
Subclasses can call this with true to denote that they require updateLogicalState() to be called even if they contain no controls.void
setShadowMode(RenderQueue.ShadowMode shadowMode)
Sets the shadow mode of the spatial The shadow mode determines how the spatial should be shadowed, when a shadowing technique is used.protected void
setTransformRefresh()
Indicate that the transform of this spatial has changed and that a refresh is required.void
setUserData(java.lang.String key, java.lang.Object data)
java.lang.String
toString()
Returns the Spatial's name followed by the class of the spatial
Example: "MyNode (com.jme3.scene.Spatial)void
updateGeometricState()
updateGeometricState
updates the lightlist, computes the world transforms, and computes the world bounds for this Spatial.void
updateLogicalState(float tpf)
updateLogicalState
calls theupdate()
method for all controls attached to this Spatial.protected void
updateMatParamOverrides()
abstract void
updateModelBound()
updateModelBound
recalculates the bounding object for this Spatial.protected void
updateWorldBound()
Should be overridden by Node and Geometry.protected void
updateWorldLightList()
protected void
updateWorldTransforms()
Should only be called from updateGeometricState().Vector3f
worldToLocal(Vector3f in, Vector3f store)
Convert a vector (in) from world coordinate space to this spatial's local coordinate space.void
write(JmeExporter ex)
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.jme.collision.Collidable
collideWith
-
-
-
-
Field Detail
-
RF_TRANSFORM
protected static final int RF_TRANSFORM
Refresh flag types- See Also:
- Constant Field Values
-
RF_BOUND
protected static final int RF_BOUND
Refresh flag types- See Also:
- Constant Field Values
-
RF_LIGHTLIST
protected static final int RF_LIGHTLIST
Refresh flag types- See Also:
- Constant Field Values
-
RF_CHILD_LIGHTLIST
protected static final int RF_CHILD_LIGHTLIST
Refresh flag types- See Also:
- Constant Field Values
-
RF_MATPARAM_OVERRIDE
protected static final int RF_MATPARAM_OVERRIDE
Refresh flag types- See Also:
- Constant Field Values
-
cullHint
protected Spatial.CullHint cullHint
-
batchHint
protected Spatial.BatchHint batchHint
-
worldBound
protected BoundingVolume worldBound
Spatial's bounding volume relative to the world.
-
localLights
protected LightList localLights
LightList
-
worldLights
protected transient LightList worldLights
-
localOverrides
protected SafeArrayList<MatParamOverride> localOverrides
-
worldOverrides
protected SafeArrayList<MatParamOverride> worldOverrides
-
name
protected java.lang.String name
This spatial's name.
-
frustrumIntersects
protected transient Camera.FrustumIntersect frustrumIntersects
-
queueBucket
protected RenderQueue.Bucket queueBucket
-
shadowMode
protected RenderQueue.ShadowMode shadowMode
-
queueDistance
public transient float queueDistance
-
localTransform
protected Transform localTransform
-
worldTransform
protected Transform worldTransform
-
controls
protected SafeArrayList<Control> controls
-
userData
protected java.util.HashMap<java.lang.String,Savable> userData
-
key
protected AssetKey key
Used for smart asset caching- See Also:
AssetKey.getCacheType()
-
parent
protected transient Node parent
Spatial's parent, or null if it has none.
-
refreshFlags
protected transient int refreshFlags
Refresh flags. Indicate what data of the spatial need to be updated to reflect the correct state.
-
-
Constructor Detail
-
Spatial
protected Spatial()
Serialization only. Do not use. Not really. This class is never instantiated directly but the subclasses like to use the no-arg constructor for their own no-arg constructor... which is technically weaker than forward supplying defaults.
-
Spatial
protected Spatial(java.lang.String name)
Constructor instantiates a newSpatial
object setting the rotation, translation and scale value to defaults.- Parameters:
name
- the name of the scene element. This is required for identification and comparison purposes.
-
-
Method Detail
-
setKey
public void setKey(AssetKey key)
Description copied from interface:CloneableSmartAsset
Set by theAssetManager
to track this asset. Only clones of the asset has this set, the original copy that was loaded has this key set to null so that only the clones are tracked for garbage collection.- Specified by:
setKey
in interfaceCloneableSmartAsset
- Parameters:
key
- The AssetKey to set
-
getKey
public AssetKey getKey()
Description copied from interface:CloneableSmartAsset
Returns the asset key that is used to track this asset for garbage collection.- Specified by:
getKey
in interfaceCloneableSmartAsset
- Returns:
- the asset key that is used to track this asset for garbage collection.
-
setRequiresUpdates
protected void setRequiresUpdates(boolean f)
Subclasses can call this with true to denote that they require updateLogicalState() to be called even if they contain no controls. Setting this to false reverts to the default behavior of only updating if the spatial has controls. This is not meant to indicate dynamic state in any way and must be called while unattached or an IllegalStateException is thrown. It is designed to be called during object construction and then never changed, ie: it's meant to be subclass specific state and not runtime state. Subclasses of Node or Geometry that do not set this will get the old default behavior as if this was set to true. Subclasses should call setRequiresUpdate(false) in their constructors to receive optimal behavior if they don't require updateLogicalState() to be called even if there are no controls.
-
setTransformRefresh
protected void setTransformRefresh()
Indicate that the transform of this spatial has changed and that a refresh is required.
-
setLightListRefresh
protected void setLightListRefresh()
-
setMatParamOverrideRefresh
protected void setMatParamOverrideRefresh()
-
setBoundRefresh
protected void setBoundRefresh()
Indicate that the bounding of this spatial has changed and that a refresh is required.
-
forceRefresh
public void forceRefresh(boolean transforms, boolean bounds, boolean lights)
(Internal use only) Forces a refresh of the given types of data.- Parameters:
transforms
- Refresh world transform based on parents'bounds
- Refresh bounding volume data based on child nodeslights
- Refresh light list based on parents'
-
checkCulling
public boolean checkCulling(Camera cam)
checkCulling
checks the spatial with the camera to see if it should be culled.This method is called by the renderer. Usually it should not be called directly.
- Parameters:
cam
- The camera to check against.- Returns:
- true if inside or intersecting camera frustum (should be rendered), false if outside.
-
setName
public void setName(java.lang.String name)
Sets the name of this spatial.- Parameters:
name
- The spatial's new name.
-
getName
public java.lang.String getName()
Returns the name of this spatial.- Returns:
- This spatial's name.
-
getLocalLightList
public LightList getLocalLightList()
Returns the localLightList
, which are the lights that were directly attached to thisSpatial
through theaddLight(com.jme.light.Light)
andremoveLight(com.jme.light.Light)
methods.- Returns:
- The local light list
-
getWorldLightList
public LightList getWorldLightList()
Returns the worldLightList
, containing the lights combined from all thisSpatial's
parents up to and including thisSpatial
's lights.- Returns:
- The combined world light list
-
getLocalMatParamOverrides
public SafeArrayList<MatParamOverride> getLocalMatParamOverrides()
Get the local material parameter overrides.- Returns:
- The list of local material parameter overrides.
-
getWorldMatParamOverrides
public SafeArrayList<MatParamOverride> getWorldMatParamOverrides()
Get the world material parameter overrides. Note that this list is only updated on a call toupdateGeometricState()
. After update, the world overrides list will contain theparent's
world overrides combined with this spatial'slocal overrides
.- Returns:
- The list of world material parameter overrides.
-
getWorldRotation
public Quaternion getWorldRotation()
getWorldRotation
retrieves the absolute rotation of the Spatial.- Returns:
- the Spatial's world rotation quaternion.
-
getWorldTranslation
public Vector3f getWorldTranslation()
getWorldTranslation
retrieves the absolute translation of the spatial.- Returns:
- the Spatial's world translation vector.
-
getWorldScale
public Vector3f getWorldScale()
getWorldScale
retrieves the absolute scale factor of the spatial.- Returns:
- the Spatial's world scale factor.
-
getWorldTransform
public Transform getWorldTransform()
getWorldTransform
retrieves the world transformation of the spatial.- Returns:
- the world transform.
-
rotateUpTo
public void rotateUpTo(Vector3f newUp)
rotateUpTo
is a utility function that alters the local rotation to point the Y axis in the direction given by newUp.- Parameters:
newUp
- the up vector to use - assumed to be a unit vector.
-
lookAt
public void lookAt(Vector3f position, Vector3f upVector)
lookAt
is a convenience method for auto-setting the local rotation based on a position in world space and an up vector. It computes the rotation to transform the z-axis to point onto 'position' and the y-axis to 'up'. UnlikeQuaternion.lookAt(com.jme.math.Vector3f, com.jme.math.Vector3f)
this method takes a world position to look at and not a relative direction. Note : 28/01/2013 this method has been fixed as it was not taking into account the parent rotation. This was resulting in improper rotation when the spatial had rotated parent nodes. This method is intended to work in world space, so no matter what parent graph the spatial has, it will look at the given position in world space.- Parameters:
position
- where to look at in terms of world coordinatesupVector
- a vector indicating the (local) up direction. (typically {0, 1, 0} in jME.)
-
updateWorldBound
protected void updateWorldBound()
Should be overridden by Node and Geometry.
-
updateWorldLightList
protected void updateWorldLightList()
-
updateMatParamOverrides
protected void updateMatParamOverrides()
-
addMatParamOverride
public void addMatParamOverride(MatParamOverride override)
Adds a local material parameter override.- Parameters:
override
- The override to add.- See Also:
MatParamOverride
-
removeMatParamOverride
public void removeMatParamOverride(MatParamOverride override)
Remove a local material parameter override if it exists.- Parameters:
override
- The override to remove.- See Also:
MatParamOverride
-
clearMatParamOverrides
public void clearMatParamOverrides()
Remove all local material parameter overrides.
-
updateWorldTransforms
protected void updateWorldTransforms()
Should only be called from updateGeometricState(). In most cases should not be subclassed.
-
runControlRender
public void runControlRender(RenderManager rm, ViewPort vp)
Called when the Spatial is about to be rendered, to notify controls attached to this Spatial using the Control.render() method.- Parameters:
rm
- The RenderManager rendering the Spatial.vp
- The ViewPort to which the Spatial is being rendered to.- See Also:
addControl(com.jme.scene.control.Control)
,getControl(java.lang.Class)
-
addControl
public void addControl(Control control)
Add a control to the list of controls.- Parameters:
control
- The control to add.- See Also:
removeControl(java.lang.Class)
-
removeControl
public void removeControl(java.lang.Class<? extends Control> controlType)
Removes the first control that is an instance of the given class.
-
removeControl
public boolean removeControl(Control control)
Removes the given control from this spatial's controls.- Parameters:
control
- The control to remove- Returns:
- True if the control was successfully removed. False if the control is not assigned to this spatial.
- See Also:
addControl(com.jme.scene.control.Control)
-
getControl
public <T extends Control> T getControl(java.lang.Class<T> controlType)
Returns the first control that is an instance of the given class, or null if no such control exists.- Parameters:
controlType
- The superclass of the control to look for.- Returns:
- The first instance in the list of the controlType class, or null.
- See Also:
addControl(com.jme.scene.control.Control)
-
getControl
public Control getControl(int index)
Returns the control at the given index in the list.- Parameters:
index
- The index of the control in the list to find.- Returns:
- The control at the given index.
- Throws:
java.lang.IndexOutOfBoundsException
- If the index is outside the range [0, getNumControls()-1]- See Also:
addControl(com.jme.scene.control.Control)
-
getNumControls
public int getNumControls()
- Returns:
- The number of controls attached to this Spatial.
- See Also:
addControl(com.jme.scene.control.Control)
,removeControl(java.lang.Class)
-
updateLogicalState
public void updateLogicalState(float tpf)
updateLogicalState
calls theupdate()
method for all controls attached to this Spatial.- Parameters:
tpf
- Time per frame.- See Also:
addControl(com.jme.scene.control.Control)
-
updateGeometricState
public void updateGeometricState()
updateGeometricState
updates the lightlist, computes the world transforms, and computes the world bounds for this Spatial. Calling this when the Spatial is attached to a node will cause undefined results. User code should only call this method on Spatials having no parent.- See Also:
getWorldLightList()
,getWorldTransform()
,getWorldBound()
-
localToWorld
public Vector3f localToWorld(Vector3f in, Vector3f store)
Convert a vector (in) from this spatial's local coordinate space to world coordinate space.- Parameters:
in
- vector to read fromstore
- where to write the result (null to create a new vector, may be same as in)- Returns:
- the result (store)
-
worldToLocal
public Vector3f worldToLocal(Vector3f in, Vector3f store)
Convert a vector (in) from world coordinate space to this spatial's local coordinate space.- Parameters:
in
- vector to read fromstore
- where to write the result- Returns:
- the result (store)
-
getParent
public Node getParent()
getParent
retrieves this node's parent. If the parent is null this is the root node.- Returns:
- the parent of this node.
-
setParent
protected void setParent(Node parent)
Called byNode.attachChild(Spatial)
andNode.detachChild(Spatial)
- don't call directly.setParent
sets the parent of this node.- Parameters:
parent
- the parent of this node.
-
removeFromParent
public boolean removeFromParent()
removeFromParent
removes this Spatial from its parent.- Returns:
- true if it has a parent and performed the remove.
-
hasAncestor
public boolean hasAncestor(Node ancestor)
determines if the provided Node is the parent, or parent's parent, etc. of this Spatial.- Parameters:
ancestor
- the ancestor object to look for.- Returns:
- true if the ancestor is found, false otherwise.
-
getLocalRotation
public Quaternion getLocalRotation()
getLocalRotation
retrieves the local rotation of this node.- Returns:
- the local rotation of this node.
-
setLocalRotation
public void setLocalRotation(Matrix3f rotation)
setLocalRotation
sets the local rotation of this node by using aMatrix3f
.- Parameters:
rotation
- the new local rotation.
-
setLocalRotation
public void setLocalRotation(Quaternion quaternion)
setLocalRotation
sets the local rotation of this node.- Parameters:
quaternion
- the new local rotation.
-
getLocalScale
public Vector3f getLocalScale()
getLocalScale
retrieves the local scale of this node.- Returns:
- the local scale of this node.
-
setLocalScale
public void setLocalScale(float localScale)
setLocalScale
sets the local scale of this node.- Parameters:
localScale
- the new local scale, applied to x, y and z
-
setLocalScale
public void setLocalScale(float x, float y, float z)
setLocalScale
sets the local scale of this node.
-
setLocalScale
public void setLocalScale(Vector3f localScale)
setLocalScale
sets the local scale of this node.- Parameters:
localScale
- the new local scale.
-
getLocalTranslation
public Vector3f getLocalTranslation()
getLocalTranslation
retrieves the local translation of this node.- Returns:
- the local translation of this node.
-
setLocalTranslation
public void setLocalTranslation(Vector3f localTranslation)
setLocalTranslation
sets the local translation of this spatial.- Parameters:
localTranslation
- the local translation of this spatial.
-
setLocalTranslation
public void setLocalTranslation(float x, float y, float z)
setLocalTranslation
sets the local translation of this spatial.
-
setLocalTransform
public void setLocalTransform(Transform t)
setLocalTransform
sets the local transform of this spatial.- Specified by:
setLocalTransform
in interfaceHasLocalTransform
-
getLocalTransform
public Transform getLocalTransform()
getLocalTransform
retrieves the local transform of this spatial.- Specified by:
getLocalTransform
in interfaceHasLocalTransform
- Returns:
- the local transform of this spatial.
-
setMaterial
public void setMaterial(Material material)
Applies the given material to the Spatial, this will propagate the material down to the geometries in the scene graph.- Parameters:
material
- The material to set.
-
addLight
public void addLight(Light light)
addLight
adds the given light to the Spatial; causing all child Spatials to be affected by it.- Parameters:
light
- The light to add.
-
removeLight
public void removeLight(Light light)
removeLight
removes the given light from the Spatial.- Parameters:
light
- The light to remove.- See Also:
addLight(com.jme.light.Light)
-
move
public Spatial move(float x, float y, float z)
Translates the spatial by the given translation vector.- Returns:
- The spatial on which this method is called, e.g
this
.
-
move
public Spatial move(Vector3f offset)
Translates the spatial by the given translation vector.- Returns:
- The spatial on which this method is called, e.g
this
.
-
scale
public Spatial scale(float s)
Scales the spatial by the given value- Returns:
- The spatial on which this method is called, e.g
this
.
-
scale
public Spatial scale(float x, float y, float z)
Scales the spatial by the given scale vector.- Returns:
- The spatial on which this method is called, e.g
this
.
-
rotate
public Spatial rotate(Quaternion rot)
Rotates the spatial by the given rotation.- Returns:
- The spatial on which this method is called, e.g
this
.
-
rotate
public Spatial rotate(float xAngle, float yAngle, float zAngle)
Rotates the spatial by the xAngle, yAngle and zAngle angles (in radians), (aka pitch, yaw, roll) in the local coordinate space.- Returns:
- The spatial on which this method is called, e.g
this
.
-
center
public Spatial center()
Centers the spatial in the origin of the world bound.- Returns:
- The spatial on which this method is called, e.g
this
.
-
getCullHint
public Spatial.CullHint getCullHint()
- Returns:
- the cull mode of this spatial, or if set to CullHint.Inherit, the cull mode of its parent.
- See Also:
setCullHint(CullHint)
-
getBatchHint
public Spatial.BatchHint getBatchHint()
-
getQueueBucket
public RenderQueue.Bucket getQueueBucket()
Returns this spatial's renderqueue bucket. If the mode is set to inherit, then the spatial gets its renderqueue bucket from its parent.- Returns:
- The spatial's current renderqueue mode.
-
getShadowMode
public RenderQueue.ShadowMode getShadowMode()
- Returns:
- The shadow mode of this spatial, if the local shadow mode is set to inherit, then the parent's shadow mode is returned.
- See Also:
setShadowMode(com.jme.renderer.queue.RenderQueue.ShadowMode)
,RenderQueue.ShadowMode
-
setLodLevel
public void setLodLevel(int lod)
Sets the level of detail to use when rendering this Spatial, this call propagates to all geometries under this Spatial.- Parameters:
lod
- The lod level to set.
-
updateModelBound
public abstract void updateModelBound()
updateModelBound
recalculates the bounding object for this Spatial.
-
setModelBound
public abstract void setModelBound(BoundingVolume modelBound)
setModelBound
sets the bounding object for this Spatial.- Parameters:
modelBound
- the bounding object for this spatial.
-
getVertexCount
public abstract int getVertexCount()
- Returns:
- The sum of all vertices under this Spatial.
-
getTriangleCount
public abstract int getTriangleCount()
- Returns:
- The sum of all triangles under this Spatial.
-
clone
public Spatial clone(boolean cloneMaterial)
- Returns:
- A clone of this Spatial, the scene graph in its entirety is cloned and can be altered independently of the original scene graph. Note that meshes of geometries are not cloned explicitly, they are shared if static, or specially cloned if animated.
- See Also:
Mesh.cloneForAnim()
-
oldClone
@Deprecated public Spatial oldClone(boolean cloneMaterial)
Deprecated.The old clone() method that did not use the new Cloner utility.
-
clone
public Spatial clone()
Description copied from interface:CloneableSmartAsset
Creates a clone of the asset. Please seeObject.clone()
for more info on how this method should be implemented.- Specified by:
clone
in interfaceCloneableSmartAsset
- Overrides:
clone
in classjava.lang.Object
- Returns:
- A clone of this Spatial, the scene graph in its entirety is cloned and can be altered independently of the original scene graph. Note that meshes of geometries are not cloned explicitly, they are shared if static, or specially cloned if animated.
- See Also:
Mesh.cloneForAnim()
-
deepClone
public Spatial deepClone()
- Returns:
- Similar to Spatial.clone() except will create a deep clone of all geometries' meshes. Normally this method shouldn't be used. Instead, use Spatial.clone()
- See Also:
clone()
-
jmeClone
public Spatial jmeClone()
Called internally by com.jme3.util.clone.Cloner. Do not call directly.- Specified by:
jmeClone
in interfaceJmeCloneable
-
cloneFields
public void cloneFields(Cloner cloner, java.lang.Object original)
Called internally by com.jme3.util.clone.Cloner. Do not call directly.- Specified by:
cloneFields
in interfaceJmeCloneable
- Parameters:
cloner
- The cloner that is performing the cloning operation. The cloneFields method can call back into the cloner to make clones of its subordinate fields.original
- The original object from which this object was cloned. This is provided for the very rare case that this object needs to refer to its original for some reason. In general, all of the relevant values should have been transferred during the shallow clone and this object need merely clone what it wants.
-
setUserData
public void setUserData(java.lang.String key, java.lang.Object data)
-
getUserData
public <T> T getUserData(java.lang.String key)
-
getUserDataKeys
public java.util.Collection<java.lang.String> getUserDataKeys()
-
matches
public boolean matches(java.lang.Class<? extends Spatial> spatialSubclass, java.lang.String nameRegex)
Note that we are matching the pattern, therefore the pattern must match the entire pattern (i.e. it behaves as if it is sandwiched between "^" and "$"). You can set regex modes, like case insensitivity, by using the (?X) or (?X:Y) constructs.- Parameters:
spatialSubclass
- Subclass which this must implement. Null causes all Spatials to qualify.nameRegex
- Regular expression to match this name against. Null causes all Names to qualify.- Returns:
- true if this implements the specified class and this's name matches the specified pattern.
- See Also:
Pattern
-
write
public void write(JmeExporter ex) throws java.io.IOException
-
read
public void read(JmeImporter im) throws java.io.IOException
-
getWorldBound
public BoundingVolume getWorldBound()
getWorldBound
retrieves the world bound at this node level.- Returns:
- the world bound at this level.
-
setCullHint
public void setCullHint(Spatial.CullHint hint)
setCullHint
alters how view frustum culling will treat this spatial.- Parameters:
hint
- one of:CullHint.Dynamic
,CullHint.Always
,CullHint.Inherit
, orCullHint.Never
The effect of the default value (CullHint.Inherit) may change if the spatial gets re-parented.
-
setBatchHint
public void setBatchHint(Spatial.BatchHint hint)
setBatchHint
alters how batching will treat this spatial.- Parameters:
hint
- one of:BatchHint.Never
,BatchHint.Always
, orBatchHint.Inherit
The effect of the default value (BatchHint.Inherit) may change if the spatial gets re-parented.
-
getLocalCullHint
public Spatial.CullHint getLocalCullHint()
- Returns:
- the cullmode set on this Spatial
-
getLocalBatchHint
public Spatial.BatchHint getLocalBatchHint()
- Returns:
- the batchHint set on this Spatial
-
setQueueBucket
public void setQueueBucket(RenderQueue.Bucket queueBucket)
setQueueBucket
determines at what phase of the rendering process this Spatial will rendered. See theRenderQueue.Bucket
enum for an explanation of the various render queue buckets.- Parameters:
queueBucket
- The bucket to use for this Spatial.
-
setShadowMode
public void setShadowMode(RenderQueue.ShadowMode shadowMode)
Sets the shadow mode of the spatial The shadow mode determines how the spatial should be shadowed, when a shadowing technique is used. See the documentation for the classRenderQueue.ShadowMode
for more information.- Parameters:
shadowMode
- The local shadow mode to set.- See Also:
RenderQueue.ShadowMode
-
getLocalQueueBucket
public RenderQueue.Bucket getLocalQueueBucket()
- Returns:
- The locally set queue bucket mode
- See Also:
setQueueBucket(com.jme.renderer.queue.RenderQueue.Bucket)
-
getLocalShadowMode
public RenderQueue.ShadowMode getLocalShadowMode()
- Returns:
- The locally set shadow mode
- See Also:
setShadowMode(com.jme.renderer.queue.RenderQueue.ShadowMode)
-
getLastFrustumIntersection
public Camera.FrustumIntersect getLastFrustumIntersection()
Returns this spatial's last frustum intersection result. This int is set when a check is made to determine if the bounds of the object fall inside a camera's frustum. If a parent is found to fall outside the frustum, the value for this spatial will not be updated.- Returns:
- The spatial's last frustum intersection result.
-
setLastFrustumIntersection
public void setLastFrustumIntersection(Camera.FrustumIntersect intersects)
Overrides the last intersection result. This is useful for operations that want to start rendering at the middle of a scene tree and don't want the parent of that node to influence culling.- Parameters:
intersects
- the new value
-
toString
public java.lang.String toString()
Returns the Spatial's name followed by the class of the spatial
Example: "MyNode (com.jme3.scene.Spatial)- Overrides:
toString
in classjava.lang.Object
- Returns:
- Spatial's name followed by the class of the Spatial
-
getLocalToWorldMatrix
public Matrix4f getLocalToWorldMatrix(Matrix4f store)
Creates a transform matrix that will convert from this spatials' local coordinate space to the world coordinate space based on the world transform.- Parameters:
store
- Matrix where to store the result, if null, a new one will be created and returned.- Returns:
- store if not null, otherwise, a new matrix containing the result.
- See Also:
getWorldTransform()
-
depthFirstTraversal
public void depthFirstTraversal(SceneGraphVisitor visitor)
Visit each scene graph element ordered by DFS with the default post order mode.- Parameters:
visitor
-- See Also:
depthFirstTraversal(com.jme.scene.SceneGraphVisitor, com.jme.scene.Spatial.DFSMode)
-
depthFirstTraversal
public abstract void depthFirstTraversal(SceneGraphVisitor visitor, Spatial.DFSMode mode)
Visit each scene graph element ordered by DFS. There are two modes: pre order and post order.- Parameters:
visitor
-mode
- the traversal mode: pre order or post order
-
breadthFirstTraversal
public void breadthFirstTraversal(SceneGraphVisitor visitor)
Visit each scene graph element ordered by BFS- Parameters:
visitor
-
-
breadthFirstTraversal
protected abstract void breadthFirstTraversal(SceneGraphVisitor visitor, java.util.Queue<Spatial> queue)
-
-


---
layout: post
date: 2015-09-30 09:30:18
categories: home
classes: dark what-can-it-do
---
Explore
Explore the server and see its entire data hierarchy.
Read / Write
Read and write values on the server with ultra-low latency.
Invoke
Remotely call a method on the server and instantly get the result.
Publish / Subscribe
Get instant notifications on data change, avoiding polling.
Multiple requests
Make multiple requests at once, lowering overhead in big applications.
Real-time
The Woopsa server replies blazingly fast with a read latency under 200 µs.
Embedded
Woopsa works on embedded devices because it uses very little resources.
Encryption
Because it uses HTTP, encryption is just a matter of adding SSL.


Jamie Jones and Syreeta in The Lab Paris
Melodic beats pulse through the streets of Paris
by in association with budxMixmag and BUDX are proud to partner to bring you the the last edition of this year's The Lab Paris.
On November 27, we will be bringing in Hot Creations label boss Jamie Jones and London talent Syreeta each set to perform in The Lab Paris at La Verrière, located in the bustling and historic District 10 of Paris.
A DJ and producer who needs little introduction, Jamie Jones has taken his melodic techno around the world with his personally curated Paradise parties starting at Ibiza's DC10 and popping up in cities such as Miami, New York, Los Angeles, Moscow and Toronto. Paradise has captivated venues and festivals like the Warehouse Project, Printworks, Tomorrowland, We Are Fstvl, BPM and DGTL. Despite his now popular acclaim, he started out throwing warehouse parties in East London in the early 2000s called DJs Can Dance. After countless summer parties in Ibiza and over 100 releases on his label, we are excited to have him join us for an intimate set in The Lab.
Syreeta began her path in DJing about six years ago after her track and field career was quelled by an injury. After discovering house music while visiting London, she moved to the city permanently to begin her journey, playing underground parties and eventually, UK & European festivals including Reading, V, TRNSMT and Reason. She was originally inspired by minimal but now incorporates thick basslines, melodic grooves and old school samples into her performances.
Both sets will be streamed to our Facebook page.
Mixmag Weekly
Get closer to dance music. Sign up for the Mixmag newsletter
Sign me up!


Experience date is required.
Experience title is required.
Experience medium is required.
Rating between 0 and 10


{{ site.name }}
{{ site.name }}
Go to...
Coding Horror
Comlicity
Daring Fireball
James Allen on F1
Signal vs. Noise
The Space Shuttle
Web developer
Co-organiser: First Play Sheffield
Video game enthusiast
If you liked this...
Bunny
Coding Horror
Comlicity
Daring Fireball
James Allen on F1
Signal vs. Noise
The Space Shuttle
Waffle
{{ content }}


▶ Wise-IoT ski resort IoT interworking project
|
2 years project June16-May 18 9 EU –9 KR partners |
Context and motivation
Objectives
Use Cases
Consortium
|
▶ IoT standards interworking scenarios at ski resort
|
Service |
Description |
|
FindGroup |
- Provide location information for group members - Group vibration feature - Pair group devices / Un-pair group devices |
|
MySkiPerformance |
- Measure ski performance for individuals and provide various statistics (incl. grade) - Identify starting point (use a button or a specific movement) - Real time GPS tracking and delivery feature (Or deliver data at the final line to save battery) - Provide performance grade and statistics - Deliver grade and statistics to smart phone or digital sinage - Consider using gps embedded pole to have better tracking |
|
KidsSkiCamp |
- Provide a tracking and location service to ski camp students and teacher - Location service to parents and teacher - Tracking service to teacher with various information including speed, the number of turns |
|
ResortCam |
- Replace legacy ski resort cam to IoT based cam - Provide web and mobile version interfaces - Consider existing systems such as streaming server and license for playing |
|
WattageMeter |
- Measure energy usage for snow canon and provide a dashboard - Use wattagemeter clip from SDS + LoRa module from SKT to transfer measured data - Energy usage for each snow canon and total usage including various statistics - Consider existing system architecture and electricity design |
[1] Monitoring snow cannon power consumption
Last updated:
|
[2] Tracking events from rescue team
Last updated:
|
[3] Alarm call to warn issues
Last updated:
|
▶ Usecases for PyeongChang 2018 ICT
|
Service |
Description |
|
AR street guide |
- Provide a best street route information based on AR and GPS technologies |
|
Smart life |
- Help people to track their location for security and provide parking information using smart street lights |
|
Smart shopping |
- Develop a shopping reference zone to attract tourists |
|
Smart tourist |
- Provide various recommendations to tourists based on AR and beacon technologies |
|
Digital Supporters |
- Develop digital signage to allow tourists to share their messages |


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import play.api.Configuration @import uk.gov.hmrc.agentsexternalstubsfrontend.controllers.PersonalDetailsValidationController.PdvRequest @import uk.gov.hmrc.play.views.html.helpers._ @this(mainTemplate: main_template, form: FormWithCSRF, singleCheckbox: SingleCheckbox, errorSummary: ErrorSummary) @(pageForm: Form[PdvRequest], formAction: Call)(implicit request: Request[_], messages: Messages, configuration: Configuration) @mainTemplate(title = Messages("login.title"), bodyClasses = None) {


Remember me
Don't have a I WILL account yet? Create your account now
you agree to the Terms of Use and Privacy Policy.
Sign in >